利用Nport Express實現(xiàn)單片機的接入網(wǎng)絡(luò)
3.4 串行口參數(shù)的設(shè)置
第三個菜單項SerialPort為串行口的設(shè)置,包括波特率、奇偶校驗、數(shù)據(jù)位、流控等參數(shù)的設(shè)置,這些參數(shù)的設(shè)置必須和單片機的串口傳送參數(shù)相一致,否則,數(shù)據(jù)將不能被正確的收發(fā)。
3.5 利用Monitor 菜單項監(jiān)控數(shù)據(jù)的收發(fā)
Monitor是另一個比較重要的菜單選項,從這個窗口中,我們可以檢查串行口參數(shù)的設(shè)置情況,其中的兩個參數(shù)TX、RX比較重要,顯示了Nport Express的收發(fā)數(shù)據(jù)量,從而也為我們判斷Nport Express是否工作正常提供了依據(jù)。
以上對Nport Express的參數(shù)進行了比較詳盡的設(shè)置,作為單片機接入網(wǎng)絡(luò)的關(guān)鍵設(shè)備,Nport Express起到了一個單片機網(wǎng)卡的作用,它是串行口數(shù)據(jù)往來的通道,而單片機作為現(xiàn)場設(shè)備檢測控制裝置,是實現(xiàn)數(shù)據(jù)交互的門戶。利用單片機采集各種數(shù)據(jù),并從串行口發(fā)出,當然電平轉(zhuǎn)換必不可少,如利用MAX232或HIN232CP芯片,轉(zhuǎn)換成232電平,接入Nport Express的串行口輸入口。其中,關(guān)鍵之處在于單片機波特率和握手協(xié)議的設(shè)定,一定要與Nport Express相一致,才能實現(xiàn)數(shù)據(jù)的正確傳輸 。單片機的初始化與收發(fā)程序分別如下:
單片機的波特率設(shè)定為9600 bps,數(shù)據(jù)的收發(fā)采用中斷方式,當單片機收到網(wǎng)絡(luò)端發(fā)來的控制命令時便可觸發(fā)執(zhí)行相應(yīng)的操作,實現(xiàn)遠程監(jiān)控的目的。其原理圖如圖2所示。
圖2 單片機遠程監(jiān)控原理圖
5 網(wǎng)絡(luò)端編程
5.1 網(wǎng)絡(luò)控件的選擇
為完成數(shù)據(jù)的采集處理和對單片機的控制,需要在客戶機或終端服務(wù)器設(shè)計一軟件平臺,實現(xiàn)客戶機與Nport Express通過以太網(wǎng)的交互。Nport Express驅(qū)動模式支持的開發(fā)語言很多,如VC,VB,Delphi, C等。因為VB操作界面簡單,串行通信與網(wǎng)絡(luò)接入控件使用方便,故此選擇VB編寫前臺控制程序。VB中有三個internet控件:internet Transfer, webBrowser, WinSock,都是ActiveX控件,可以用來實現(xiàn)每一層Internet 通信的訪問。
在VB中利用Winsock控件,可以為兩個或多個Internet節(jié)點建立連接并使之交換數(shù)據(jù)。對用戶來說,Winsock控件是不可見的,它提供了訪問 TCP和UDP網(wǎng)絡(luò)服務(wù)的方便途徑,編寫客戶或服務(wù)器應(yīng)用程序時,可不必了解TCP的細節(jié)或調(diào)用低級的Winsock APIs。通過設(shè)置控件的屬性并調(diào)用其方法就可以連接到一臺遠程機器上,并且還可雙向交換數(shù)據(jù)。
5.2 Winsock的屬性設(shè)置
Winsock的屬性主要有以下四個:
(a) Protocol ,返回或設(shè)置Winsock空間所使用的協(xié)議,本文選用UDP;
(b)RemoteHostIP,遠程主機IP地址,本文中即Nport Express的實際IP地址;
(c)RemotePort, 要連接的遠程端口號,要與Nport Express的設(shè)置相一致;
(d)LocalPort, 本地端口,即與Nport Express進行數(shù)據(jù)交互的計算機端口號,可自由設(shè)定,但要與Nport Express中的設(shè)置值相一致。
5.3 利用Winsock實現(xiàn)數(shù)據(jù)的收發(fā)
調(diào)用Winsock的SendData方法,可以發(fā)送數(shù)據(jù)到網(wǎng)絡(luò),經(jīng)Nport Express傳輸?shù)絾纹瑱C,實現(xiàn)前臺對現(xiàn)場設(shè)備的遠程控制,最簡單的調(diào)用方法如:
Private Sub Timer1_Timer()
Winsock1.SendData (Text1.Text)
End Sub
由一個時鐘控件觸發(fā)Winsock控件的SendData 方法,實現(xiàn)數(shù)據(jù)向網(wǎng)絡(luò)的傳輸,并經(jīng)Nport Express,傳送到單片機,實現(xiàn)控制命令的傳送,當然也可以由其他事件觸發(fā)。
調(diào)用GetData方法,可獲得單片機發(fā)送到網(wǎng)絡(luò)上的數(shù)據(jù)流,這個方法一般在Winsock的DataArrival事件中使用。例如,一段數(shù)據(jù)接收程序如下:
Private Sub Winsock1_DataArrival (ByVal bytesTotal As Long)
Dim strdata As String
Winsock1.GetData strdata, vbString
List1.AddItem strdata
End Sub
則單片機發(fā)出的數(shù)據(jù)流將自動添加到列表框中。值得特別注意的一點是,必須對Winsock的Bind屬性賦予合理的初值,并且要與Nport Express的本地端口值一致。數(shù)據(jù)的具體處理涉及到很多方面的內(nèi)容,如通信協(xié)議的制定,低層數(shù)據(jù)庫的建立與數(shù)據(jù)更新等,在此不一一累述。
6 結(jié)束語
以太網(wǎng)作為IT產(chǎn)業(yè)的主要通信骨干,已是眾所周知的事實,并且在與人類生活息息相關(guān)的信息產(chǎn)業(yè)上得到了大量應(yīng)用,面對這股網(wǎng)絡(luò)化的潮流,身為所有產(chǎn)業(yè)基礎(chǔ)建設(shè)的工業(yè)自動化系統(tǒng),也應(yīng)廣泛的應(yīng)用TCP/IP以太網(wǎng)作為系統(tǒng)通信界面,提高系統(tǒng)自動化的能力。利用摩莎公司的Nport Express產(chǎn)品實現(xiàn)單片機接入以太網(wǎng),達到了遠程測量和控制的目的,簡單易用、成本適中、效果明顯是串行通信網(wǎng)絡(luò)化的一種可行的方案。
評論