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