關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于VC的執(zhí)行機構(gòu)以太網(wǎng)控制系統(tǒng)的設(shè)計

基于VC的執(zhí)行機構(gòu)以太網(wǎng)控制系統(tǒng)的設(shè)計

作者: 時間:2010-04-21 來源:網(wǎng)絡(luò) 收藏

2.2 電動轉(zhuǎn)串口模塊通訊的實現(xiàn)

串行通訊采用TTL電平,占用兩個I/O口,即輸入口(RxD)和輸出口(TxD),主控板需要提供+5V電源給轉(zhuǎn)串口模塊,硬件連接如圖2所示。


圖2 底層通訊的實現(xiàn)原理圖

本系統(tǒng)中所采用的主控芯片為Intel 80C196MC。圖中P2.0作為80C196MC的串行輸出,P2.1作為80C196MC的串行輸入。網(wǎng)卡地線應(yīng)和主控制板的數(shù)字地即單片機的地連接。80C196MC與轉(zhuǎn)串口模塊之間采用異步通信,一幀長度為10位,包含8位數(shù)據(jù),1位奇偶校驗位和1位結(jié)束位。

3 軟件部分的實現(xiàn)

本系統(tǒng)采用++6.0的WinSock編程。套接字(Socket)已經(jīng)成為當(dāng)今最流行的網(wǎng)絡(luò)通信應(yīng)用程序接口。套接字最初由加利福利亞大Berkeley分校為Unix操作系統(tǒng)開發(fā)的網(wǎng)絡(luò)通信接口, 后來它又被移植到DOS與Windows 系統(tǒng),特別是近幾年互聯(lián)網(wǎng)在全世界范圍內(nèi)的廣泛普及, 進(jìn)一步奠定了它在網(wǎng)絡(luò)通信程序開發(fā)領(lǐng)域的主宰地位。

系統(tǒng)采用Client/Server模式。通過以太網(wǎng)轉(zhuǎn)串口模塊的配置軟件,將該模塊設(shè)置成服務(wù)器模式,而主控計算機上的控制軟件部分為客戶端,每次啟動由主控計算機主動連接執(zhí)行機構(gòu)??蛻舳撕头?wù)器采用面向連接的通信協(xié)議:控制計算機和模塊之間會建立一個虛擬連接,這個連接一旦建立,客戶端和服務(wù)器之間就可以把數(shù)據(jù)當(dāng)作一個雙向字節(jié)流進(jìn)行交換;如果連接建立不成功,則不會發(fā)送數(shù)據(jù)。另外,面向連接傳輸?shù)拿恳粋€報文都需要接收端確認(rèn),未確認(rèn)報文被認(rèn)為是出錯的報文。

3.1 通信過程

Socket有同步阻塞方式和異步非阻塞方式兩種使用,本系統(tǒng)應(yīng)用程序中創(chuàng)建了繼承于CAsyncSocket類的TestSocket類,它是一個異步非阻塞Socket封裝類。

由于已經(jīng)將以太網(wǎng)轉(zhuǎn)串口模塊設(shè)置為服務(wù)器模式,所以,主控計算機段的程序是作為客戶端出現(xiàn)的,該程序的編寫大致按照以下步驟進(jìn)行:

1) 首先調(diào)用WSAStartup函數(shù)來初始化套接字庫。

2) 調(diào)用socket函數(shù)來創(chuàng)建一個套接字。

3) 調(diào)用connect函數(shù)連接服務(wù)器,發(fā)出連接請求

4) 服務(wù)器響應(yīng)連接請求后,與服務(wù)器開始進(jìn)行交互操作(接收、發(fā)送數(shù)據(jù)等),直到請求結(jié)束。

5) 調(diào)用closesocket關(guān)閉套接字,釋放套接字資源。

6) 調(diào)用WSACleanup函數(shù)釋放相應(yīng)資源。

客戶端程序與服務(wù)器的通信過程如圖3所示:


圖3:面向連接服務(wù)的socket調(diào)用模型

在以太網(wǎng)轉(zhuǎn)串口模塊中,服務(wù)器程序調(diào)用listen函數(shù)將此socket置于監(jiān)聽狀態(tài),讓這個socket對進(jìn)來的連接進(jìn)行監(jiān)聽并確認(rèn)連接請求。當(dāng)服務(wù)器端監(jiān)聽到來自客戶端的連接請求后,一個正在監(jiān)聽的socket將給將給每個請求發(fā)送一個確認(rèn)信息,然后調(diào)用accept函數(shù),接著,面向連接的客戶通過調(diào)用connect函數(shù)啟動網(wǎng)絡(luò)對話。在客戶端和服務(wù)器端建立連接以后,雙方就可以通過send和recv或其它面向連接的Socket API函數(shù)進(jìn)行網(wǎng)絡(luò)通信了。

3.2 通信協(xié)議

計算機和以太網(wǎng)轉(zhuǎn)串口模塊之間用SOCKET進(jìn)行通信,模塊和執(zhí)行機構(gòu)之間則采用TTL電平通信,采用統(tǒng)一的通信協(xié)議。計算機為主動通訊設(shè)備,即所有的對話均由控制計算機發(fā)起,執(zhí)行機構(gòu)只是被動的應(yīng)答命令。

協(xié)議中信息幀主要分為兩種:數(shù)據(jù)幀與命令幀。它實現(xiàn)一般信息通信功能。數(shù)據(jù)幀包含一般的I/O信息,而命令幀則包含控制、查詢及設(shè)置等命令。為保證信息傳送的準(zhǔn)確性,每條命令必須進(jìn)行校驗(校驗和1),如果命令后有命令參數(shù)的話,要再次校驗(校驗和2)。執(zhí)行機構(gòu)返回的信息也要校驗。校驗的方法可采用逐字節(jié)異或的方式。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉