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