譚建宇,謝 明,嚴(yán)小明
(上海理工大學(xué) 光電信息與計算機(jī)工程學(xué)院,上海 200093)
?
基于物聯(lián)網(wǎng)的GPIB通信卡設(shè)計
譚建宇,謝 明,嚴(yán)小明
(上海理工大學(xué) 光電信息與計算機(jī)工程學(xué)院,上海 200093)
針對自動測量系統(tǒng)中GPIB總線系統(tǒng)為有線連接,在應(yīng)用環(huán)境上有距離、空間的限制,基于物聯(lián)網(wǎng)思想,設(shè)計了一種基于LPC1768的WiFi-GPIB通信接口卡實(shí)現(xiàn)無線通信。硬件設(shè)計上,基于NAT9914設(shè)計GPIB接口電路。軟件設(shè)計上,GPIB接口功能采用中斷處理的方法設(shè)計實(shí)現(xiàn);針對UDP協(xié)議可靠性的欠缺,WiFi通信功能利用基于Scoket編程的RUDP協(xié)議實(shí)現(xiàn)。實(shí)驗(yàn)表明,該通信卡在特殊環(huán)境下亦有良好實(shí)時性和可靠性。
WiFi-GPIB通信卡;WiFi;LPC1768;RUDP
GPIB總線具有出色的可靠性、實(shí)時性、穩(wěn)定性與強(qiáng)大的SCPI指令兼容性,在自動測量系統(tǒng)中應(yīng)用廣泛。但GPIB接口線為有線連接,在特殊環(huán)境中不能方便使用實(shí)現(xiàn)對儀器資源的共享與遠(yuǎn)程監(jiān)控。本文基于物聯(lián)網(wǎng)思想在程控儀器的GPIB通信接口卡中加入射頻模塊擴(kuò)展為WiFi接口,通過無線WiFi將儀器接入局域網(wǎng)中,實(shí)現(xiàn)中近距離的實(shí)時監(jiān)控[1-3]。
測量系統(tǒng)有著數(shù)據(jù)吞吐量大和傳輸速率要求較高的特點(diǎn),故設(shè)計的MCU選用LPC1768。LPC1768為NXP公司推出針對工業(yè)網(wǎng)絡(luò)白色家電、電機(jī)控制等應(yīng)用的Cortex-M3內(nèi)核單片機(jī)。該單片機(jī)具有512 kB 的Flash 存儲器、64 kB 的數(shù)據(jù)存儲器、以太網(wǎng)MAC接口,操作頻率可達(dá)100 MHz。
通信卡的主要硬件電路包括:復(fù)位電路、串口下載電路、GPIB模塊、WiFi模塊和電源模塊等。WiFi射頻模塊TLN13UA06與GPIB模塊分別位LPC1768對端,經(jīng)LPC1768數(shù)據(jù)處理實(shí)現(xiàn)轉(zhuǎn)換通信。復(fù)位電路主要是用于LPC1768的硬件復(fù)位,GPIB模塊與WiFi模塊采用軟件復(fù)位,串口電路設(shè)計為程序下載用。電源模塊有兩路輸出, 供電給LPC1768、WiFi模塊,5 V電源給GPIB模塊供電。
圖1 通信卡硬件結(jié)構(gòu)框圖
1.1 GPIB接口硬件設(shè)計
考慮到資料獲取和實(shí)現(xiàn)的難易程度,GPIB模塊選用NAT9914芯片輔助實(shí)現(xiàn)GPIB協(xié)議。外圍電路配合選用了TI公司開發(fā)的配套專用接口芯片SN75160和SN75162。SN75160為數(shù)據(jù)三態(tài)緩沖器。SN75162為控制信號三態(tài)緩沖器,兩者配合NAT9914可完成數(shù)據(jù)流與控制信號流的控制。
GPIB接口電路如圖2所示。NAT9914的D0~D7為數(shù)據(jù)接口,與LPC1768的作為數(shù)據(jù)總線的I/O口相接。NAT9914時鐘輸入腳CLK接I/O輸出口,由LPC1768提供時鐘頻率信號。INT引腳為NAT9914的中斷輸出腳,接LPC1768的I/O輸入口進(jìn)行中斷監(jiān)測。其余控制引腳如寄存器選擇引腳RS2~RS0等則分別由LPC1768的I/O輸出口進(jìn)行控制。
圖2 GPIB接口電路
1.2 WiFi接口硬件設(shè)計
WiFi模塊選用射頻模塊TLN13UA06擴(kuò)展為WiFi接口。
GPIB的接口軟件設(shè)計包括:NAT9914讀,寫時序的實(shí)現(xiàn);GPIB接口功能的實(shí)現(xiàn)。
NAT9914讀,寫時序的實(shí)現(xiàn)實(shí)則是LPC1768對NAT9914的19個寄存器的操作,包括11個自讀寄存器和8個只寫寄存器[4]。只讀寄存器用于保存接受GPIB母線的報文和記錄NAT9914的當(dāng)前狀態(tài)。只寫寄存器用于寫入命令對NAT9914控制和向GPIB母線傳送消息,每個寄存器都有各自不同的功能[5]。
本文設(shè)計的通信卡只需滿足GPIB系統(tǒng)中主從機(jī)之間的基本通信、服務(wù)請求與相應(yīng)處理,故只實(shí)現(xiàn)6種GPIB接口功能:T/SH功能、L/AH功能、SR功能、PP功能。
在通信卡上電后,LPC1768對NAT9914進(jìn)行初始化設(shè)置,包括有時鐘頻率設(shè)置、接發(fā)中斷模式設(shè)置、GPIB地址設(shè)置、串詢回應(yīng)設(shè)置、接口延遲設(shè)置等。待初始化完成后,LPC1768才進(jìn)入了中斷等待狀態(tài)。對應(yīng)的NAT9914中斷處理即GPIB接口功能的實(shí)現(xiàn)。
T/SH功能實(shí)如下:(1)在需要發(fā)送一段報文時,請求主機(jī)并等待被主機(jī)尋址;(2)主機(jī)尋址通信卡,中斷觸發(fā),LPC1768讀取NAT9914的中斷寄存器(ISR0、ISR1、ISR2)和地址狀態(tài)寄存器ADSR判斷當(dāng)前狀態(tài),若為講狀態(tài)就進(jìn)入T/SH功能;(3)讀取中斷狀態(tài)ISR0寄存器判斷出寄存器CDOR是否為空,若不為空,則等待GPIB總線讀取CDOR中的報文,若為空則下一步;(4)將報文寫入CDOR中;(5)重復(fù)步驟(3)和步驟(4)步直至報文發(fā)送完畢,發(fā)送EOS(End of String)并返回中斷等待狀態(tài)。
3.1 RUDP協(xié)議
WiFi通信IEEE-802標(biāo)準(zhǔn)規(guī)定的TCP/IP協(xié)議是一個大的協(xié)議族的統(tǒng)稱[6],表1列出了在TCP/IP分層模型[7]中各常用協(xié)議的位置。
表1 TCP/IP分層模型
工業(yè)通信無需兼容TCP/IP協(xié)議族的所有協(xié)議,只需實(shí)現(xiàn)其中部分協(xié)議即可,下面就傳輸層協(xié)議的選擇實(shí)現(xiàn)進(jìn)行敘述。
表中可見在傳輸層協(xié)議中,有TCP協(xié)議和UDP協(xié)議。TCP協(xié)議可靠性高但效率過低,UDP協(xié)議效率高但可靠性欠佳。故本設(shè)計考慮在傳輸層選用UDP協(xié)議基礎(chǔ)上,在應(yīng)用層和傳輸層中加入RUDP協(xié)議以滿足可靠性要求[8-9]。
RUDP協(xié)議需實(shí)現(xiàn)的主要功能如下:(1)基于消息的收發(fā)功能,基于消息的收發(fā)功能,RUDP的傳輸層采用UDP協(xié)議,因而其能向應(yīng)用層提供基于消息的面向連接的可靠數(shù)據(jù)傳遞業(yè)務(wù);(2)確定延遲功能,類似TCP協(xié)議中的推遲確認(rèn)技術(shù),可顯著降低網(wǎng)絡(luò)流量,提高效率;(3)選擇性確認(rèn)功能,用于提示發(fā)送方快速重發(fā)數(shù)據(jù)包,提高網(wǎng)絡(luò)帶寬利用率;(4)滑動窗口功能,包括窗口通告、發(fā)送窗口、接收窗口; (5)超時重發(fā)功能:類似TCP協(xié)議,保證數(shù)據(jù)包的可靠傳遞;(6)校驗(yàn)和功能,采用二進(jìn)制反碼求和算法校驗(yàn)。
3.2 RUDP協(xié)議的實(shí)現(xiàn)
基于Scoket編寫RUDP協(xié)議程序,實(shí)現(xiàn)通信卡作為客戶端與服務(wù)器端(上位機(jī))通信[10-14]。程序中調(diào)用的庫函數(shù)主要有:(1)scoket(int af,int type ,int potrol):分配套接口描述字及資源;(2)bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen):將本地址與一套接口捆綁;(3)listen(SOCKET s, int backlog):創(chuàng)建套接口并監(jiān)聽申請的連接;(4)connect(SCOKET s, const struct sockaddr FAR* name, int namelen):與指定scoket建立連接;(5)accept(int sockfd, struct sockaddr *addr, cockle_t *addrlen):在一個套接口接受一個連接;(6)send(SOCKET s, const char FAR* buf,int len, int flags):向已連接的socket發(fā)送數(shù)據(jù);(7)Receive(void* IpBuf,int nBufLen,int nFlags =0):從第一個入隊列的數(shù)據(jù)包中解出數(shù)據(jù),發(fā)到緩沖區(qū)中;(8)closesocket(SCOKET s):關(guān)閉一個套接口。
Scoket實(shí)現(xiàn)RUDP的編程模型如圖3所示[15-16]。
圖3 RUDP協(xié)議模型
實(shí)驗(yàn)設(shè)計利用筆記本電腦作為上位機(jī),采集Agilent的34401萬用表的數(shù)據(jù)以對測試通信卡進(jìn)行數(shù)據(jù)采集。9組實(shí)驗(yàn)測試環(huán)境如下:(1)上位機(jī)與所監(jiān)控對象萬用表距離分別為40 m,50 m,60 m;(2)數(shù)據(jù)采集間距分別為400 ms,200 ms,100 ms;(3)一次實(shí)驗(yàn)采集時間為1 h;(4)萬用表兩表筆懸空,即采集0 電壓。其中40 m距離,數(shù)據(jù)采集間隔為400 ms的實(shí)驗(yàn)中上位機(jī)采集到的實(shí)時數(shù)據(jù)表部分截圖如圖4所示。
圖4 上位機(jī)采集的數(shù)據(jù)表圖
對實(shí)驗(yàn)進(jìn)行數(shù)據(jù)統(tǒng)計,統(tǒng)計結(jié)果如表2所示。
表2 實(shí)驗(yàn)統(tǒng)計結(jié)果
由表2可以看出,該通信卡在40 m范圍內(nèi),采樣間隔不少于200 ms的情況下,數(shù)據(jù)丟失率可控制在0.027%以下。
本文主要闡述了基于LPC1768的WiFi-GPIB通信卡的軟硬件設(shè)計。實(shí)驗(yàn)結(jié)果證實(shí)通信卡在具有較好的可靠性與實(shí)時性,具有良好的實(shí)用價值。
[1] 錢志鴻,王義君.物聯(lián)網(wǎng)技術(shù)與應(yīng)用研究[J].電子學(xué)報,2012,40(5):1023-1029.
[2] 李志宇.物聯(lián)網(wǎng)技術(shù)研究進(jìn)展[J].計算機(jī)測量與控制,2012,20(6):1445-1448.
[3] 李春沅.GPIB及其應(yīng)用[J].儀表技術(shù),2001(4): 42-44.
[4] 張煥林,穆建成.基于GPIB技術(shù)的自動測試系統(tǒng)設(shè)計[J].微計算機(jī)信息,2005,21(5):165-166.
[5] Xiaoru H,Yudong G.Design and implemen-tation of the universal RS232-GPIB inter-face[C].Lanzhou: 8th International Con-ference on Electronic Measurement and Instru-ments,IEEE,2007.
[6] Weber R H.Internet of things-new security and privacy challenges[J].Computer Law & Security Review,2010,26(1):23-30.
[7] Fall Kevin R,Richard Stevens W. TCP/IP illustrated, volume 1:the protocols[M].New York:Addison Wesley, 2011.
[8] 周宏,柳長安,盧東昕.嵌入式實(shí)時系統(tǒng)中RUDP通信的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程,2006,32(11):265-267.
[9] 趙???RUD協(xié)議的形式化分析和研究[D].濟(jì)南:山東大學(xué),2013.
[10] 王學(xué)偉,趙乃武.IEEE488卡GPIB操作語句設(shè)計及在TurboC語言中的編程應(yīng)用[J].電測與儀表,1996,33(11):23-26.
[11] 笪許燕.基于GPIB的自動測試系統(tǒng)組態(tài)軟件的研究[D].合肥:合肥工業(yè)大學(xué),2002.
[12] 王學(xué)偉,張未未,趙勇.USB-GPIB控制器及VISA函數(shù)庫的設(shè)計[J].電子測量與儀器學(xué)報,2008,22(3):87-93.
[13] 張煥林,穆建成.基于GPIB技術(shù)的自動測試系統(tǒng)設(shè)計[J].微計算機(jī)信息,2005,21(5):165-166.
[14] 王繼剛,顧國昌,徐立峰,等.可靠 UDP 數(shù)據(jù)傳輸協(xié)議的研究與設(shè)計[J].計算機(jī)工程與應(yīng)用,2006,42(15):113-116.
[15] 趙飛,葉震.UDP協(xié)議與TCP協(xié)議的對比分析與可靠性改進(jìn)[J].計算機(jī)技術(shù)與發(fā)展,2006,16(9): 219-221.
[16] 蘆東昕,張華強(qiáng),王陳.基于UDP的可靠數(shù)據(jù)傳遞技術(shù)研究[J].計算機(jī)工程,2003,29(22):62-63.
A Design of GPIB Converter Based on the Internet of Things
TAN Jianyu,XIE Ming,YAN Xiaoming
(School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology, Shanghai 20093, China)
In view of the length space limit of GPIB Interface cable in automatic measurement , referencing the Internet of things design a WiFi-GPIB converter card based on LPC1768 to realize wireless communication. On the hardware design, the GPIB interface circuit designed based on the NAT9914. On the software design, the design of functions of GPIB interface adopt the method of interrupt. And for the lack of reliability of UDP protocol, realize the RUDP protocol based on the Scoket programming. This card has great real-time reliability performance in special environment experiment.
WiFi-GPIB converter; WiFi; LPC1768; RUDP
10.16180/j.cnki.issn1007-7820.2016.12.014
2016- 02- 29
滬江基金資助項目(B1402/D1402)
譚建宇(1991-)男,碩士研究生。研究方向:電力電子技術(shù)。嚴(yán)小明(1991-),男,碩士研究生。研究方向:低壓測試等。謝明(1973-),男,講師。研究方向:新能源電能變換技術(shù)。
TN926+.24;TP273
A
1007-7820(2016)12-048-04