張 銳,郎 洪,李叢蓉,陳正豪,李 達,王以忠
(天津科技大學(xué) 電子信息與自動化學(xué)院,天津300222)
物聯(lián)網(wǎng)網(wǎng)關(guān)通信信道擴展的研究
張 銳,郎 洪,李叢蓉,陳正豪,李 達,王以忠
(天津科技大學(xué) 電子信息與自動化學(xué)院,天津300222)
針對物聯(lián)網(wǎng)技術(shù)中遇到的底層設(shè)備多而通信可能不暢的問題,文中以單片機作為控制器,結(jié)合RS232接口擴展電路,實現(xiàn)物聯(lián)網(wǎng)網(wǎng)關(guān)通信信道的擴展。文中給出了網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)圖,進行了軟硬件設(shè)計,使一個RS232接口連接四臺信息感知設(shè)備,并能實現(xiàn)接口之間的相互轉(zhuǎn)換。該網(wǎng)關(guān)的研制可以提高物聯(lián)網(wǎng)底層的硬件攜帶能力和數(shù)據(jù)傳輸效率,在使用物聯(lián)網(wǎng)技術(shù)的系統(tǒng)中具有一定的實用價值。
物聯(lián)網(wǎng);RS232;網(wǎng)關(guān);信道擴展
近年來,隨著物聯(lián)網(wǎng)技術(shù)以及與物聯(lián)網(wǎng)相關(guān)的電子標(biāo)簽、中間件系統(tǒng)、嵌入式系統(tǒng)和云計算技術(shù)的發(fā)展,物聯(lián)網(wǎng)及其相關(guān)技術(shù)受到廣泛的關(guān)注,各國投入大量的人力物力開展物聯(lián)網(wǎng)及其相關(guān)技術(shù)的研究[1-3]。從技術(shù)框架上,物聯(lián)網(wǎng)可分為三層:感知層、網(wǎng)絡(luò)層、應(yīng)用層[4]。這三層有機結(jié)合,分工合作從而實現(xiàn)對信息的“全面感知、可靠傳送、智能處理”。物聯(lián)網(wǎng)網(wǎng)關(guān)位于感知層和網(wǎng)絡(luò)層之間,是傳感層向網(wǎng)絡(luò)層傳輸數(shù)據(jù)的必經(jīng)環(huán)節(jié)。現(xiàn)有的信息感知設(shè)備,如RFID標(biāo)簽[5]、GPS定位[6]等均通過RS232接口向網(wǎng)絡(luò)層傳輸數(shù)據(jù),而每一臺信息感知設(shè)備都需要物聯(lián)網(wǎng)網(wǎng)關(guān)層配置一個接口,當(dāng)信息感知設(shè)備較多時,這樣的配置無疑會造成網(wǎng)關(guān)設(shè)備復(fù)雜,增加設(shè)備成本;同時由于信息感知設(shè)備的數(shù)據(jù)采集和傳輸過程并非連續(xù)不斷,這樣的配置使得接口利用率降低,數(shù)據(jù)傳輸效率下降。因此,將物聯(lián)網(wǎng)網(wǎng)關(guān)的通信信道擴展,有利于提高物聯(lián)網(wǎng)的數(shù)據(jù)傳輸?shù)男?,從而推動物?lián)網(wǎng)技術(shù)的應(yīng)用。
目前已有的物聯(lián)網(wǎng)網(wǎng)關(guān)通信信道的擴展采用雙四通道多路轉(zhuǎn)換器4052[7]、SPI總線的GM8142擴展器[8]、UART多串口擴展器SP2349[9]、SP2538[10]、FPGA多串口擴展器[11],文中采用VK系列中VK3214串口擴展芯片并結(jié)合AVR系列單片機進行串口擴展。
系統(tǒng)總體結(jié)構(gòu)如圖1所示,從圖1可以看出,系統(tǒng)以單片機(Atmega128)作為控制器,結(jié)合RS232接口及擴展電路,擴展電路即采用VK3214串口擴展芯片的擴展電路,實現(xiàn)物聯(lián)網(wǎng)網(wǎng)關(guān)接口的擴展,使其從原先的一個接口連接一臺感知設(shè)備,擴展為一個接口連接四臺感知設(shè)備,同時實現(xiàn)接口之間的相互轉(zhuǎn)換,提高接口的兼容性。在軟件上,以RS232通訊協(xié)議為基礎(chǔ),針對物聯(lián)網(wǎng)網(wǎng)關(guān)的信道擴展需求,制定“一對四”通訊協(xié)議和接口通訊模式轉(zhuǎn)換程序[12-13]。軟硬件結(jié)合實現(xiàn)物聯(lián)網(wǎng)網(wǎng)關(guān)的信道擴展。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
2.1 RS232接口電路
為了使RS232接口電路的電壓與單片機的供電電壓保持一致,必須經(jīng)過接口電路進行標(biāo)準(zhǔn)轉(zhuǎn)換[14-15],目前較常用的方法是使用集成電路轉(zhuǎn)換器件,文中采用MAX232,利用RS232轉(zhuǎn)換TTL模塊進行物聯(lián)網(wǎng)網(wǎng)關(guān)和單片機之間的通信連接。在本設(shè)計中,單片機的RXD0、TXD0接口經(jīng)過TTL與RS232轉(zhuǎn)換電平后,用九針串口線引出接到物聯(lián)網(wǎng)網(wǎng)關(guān),RS232接口電路如圖2所示。
圖2 RS232接口電路
2.2 RS232擴展電路
RS232擴展電路通過利用 VK3214串口擴展芯片搭建起信息感知設(shè)備和單片機之間的橋梁,進行數(shù)據(jù)的儲存和傳遞。VK3214是支持UART通信接口的4通道UART器件,用來實現(xiàn)UART橋接/擴展4個串口(UART)的功能。當(dāng)VK3214的主接口為UART時,僅需要主串口MRX、MTX連接單片機的USART1,采用標(biāo)準(zhǔn)的UART協(xié)議進行通信。
在本設(shè)計中,將Atmega128的RXD1、TXD1接口引出與VK3214串口擴展芯片主串口的MTX、MRX相連,串口擴展芯片的4對RXD、TXD同樣經(jīng)過TTL和RS232轉(zhuǎn)換電平后,分別用九針串口線引出接到4個信息感知設(shè)備上,即可實現(xiàn)串口數(shù)據(jù)的收發(fā)。RS232接口擴展電路如圖3所示。
圖3 RS232擴展電路
2.3 Atmega128外圍控制電路
Atmega128為基于AVR RISC結(jié)構(gòu)的8位低功耗CMOS微處理器[16]。在Atmega128外圍控制電路中還包括撥碼開關(guān)部分,在“一對四”通信協(xié)議中,每一個撥碼開關(guān)對應(yīng)一個信息感知設(shè)備,進行數(shù)據(jù)流的通信,其中,帶有電源指示燈及數(shù)據(jù)流量指示燈可顯示故障狀況。如圖4所示為本設(shè)計中Atmega128外圍控制電路。
圖4 Atmega128外圍控制電路
3.1 初始化設(shè)置
Atmega128給VK3214的復(fù)位管腳發(fā)送一個低電平信號,VK3214復(fù)位后根據(jù)外部晶振電路對VK3214的主串口進行波特率、位長度、停止位、校驗位等進行默認的配置,由VK3214的數(shù)據(jù)手冊可知,若晶振的頻率為7.372 8 MHz,VK3214主串口的默認波特率為19 200,8位數(shù)據(jù),1位停止位,無校驗位。再通過VK3214主串口對子串口相關(guān)的寄存器進行相應(yīng)的配置。
3.2 上行通信
上行通信指信息感知設(shè)備產(chǎn)生的數(shù)據(jù)通過VK3214發(fā)送給Atmega128,進而傳遞給物聯(lián)網(wǎng)網(wǎng)關(guān),上行通信程序流程圖如圖5所示,中斷服務(wù)子程序流程圖如圖6所示。定義四臺信息感知設(shè)備分別為A、B、C、D,幾臺信息感知設(shè)備采用搶占的方式,通過子串口給VK3214發(fā)送數(shù)據(jù),VK3214子串口接收到數(shù)據(jù)后產(chǎn)生中斷,通知Atmega128讀取數(shù)據(jù)。Atmega128接收到中斷請求信號后通過讀取VK3214的中斷狀態(tài)寄存器確定是哪個子串口有數(shù)據(jù),再通過讀取這一子串口的FIFO狀態(tài)寄存器確定子串口接收FIFO中的數(shù)據(jù)個數(shù),然后通過讀取子串口FIFO數(shù)據(jù)寄存器,從這一子串口讀取相應(yīng)數(shù)量的字節(jié)數(shù)據(jù),最后利用Atmega128的USART0將數(shù)據(jù)傳遞給物聯(lián)網(wǎng)網(wǎng)關(guān),從而完成上行通信。
圖5 上行通信程序流程圖
圖6 中斷服務(wù)子程序流程圖
3.3 下行通信
下行通信指物聯(lián)網(wǎng)網(wǎng)關(guān)數(shù)據(jù)經(jīng)Atmega128通過VK3214發(fā)送給各臺信息感知設(shè)備(A、B、C、D),程序流程圖如圖7所示。定義4個撥碼開關(guān)分別為K1、K2、K3、K4,當(dāng)K1被按下時,A接收數(shù)據(jù),當(dāng)K2被按下時,B接收數(shù)據(jù),當(dāng)K3被按下時,C接收數(shù)據(jù),當(dāng)K4被按下時,D接收數(shù)據(jù),設(shè)備接收數(shù)據(jù)的同時有對應(yīng)數(shù)據(jù)流量指示燈的閃爍。當(dāng)Atmega128接收來自物聯(lián)網(wǎng)網(wǎng)關(guān)數(shù)據(jù)時,VK3214主串口產(chǎn)生中斷接收數(shù)據(jù)并存放在相應(yīng)子串口的發(fā)送FIFO中,通過發(fā)送FIFO將數(shù)據(jù)傳遞給相應(yīng)的信息感知設(shè)備,下行通信結(jié)束。
圖7 下行通信程序流程圖
在實驗測試過程中發(fā)現(xiàn)單片機的串口波特率要求是VK3214子串口波特率的倍數(shù),若倍數(shù)太小會導(dǎo)致接收FIFO溢出,倍數(shù)過大則會導(dǎo)致發(fā)送FIFO溢出,發(fā)送FIFO的數(shù)據(jù)還沒發(fā)出去,又送進來新的數(shù)據(jù)。為了便于測試,將每個子串口的波特率設(shè)置為4800,單片機串口的波特率即物聯(lián)網(wǎng)網(wǎng)關(guān)配置和測試界面中的波特率設(shè)置為19200,測試中有四臺信息感知設(shè)備,設(shè)備1,2,3,4分別為溫度信息感知設(shè)備,濕度信息感知設(shè)備,RFID標(biāo)簽信息感知設(shè)備,GPS定位信息感知設(shè)備,均通過RS-232接口向網(wǎng)絡(luò)層傳輸數(shù)據(jù),物聯(lián)網(wǎng)網(wǎng)關(guān)配置和測試界面將會顯示采集的數(shù)據(jù),如COM1:23,則表示數(shù)據(jù)23是來自設(shè)備1即溫度信息感知設(shè)備,表明當(dāng)前溫度為23℃。物聯(lián)網(wǎng)網(wǎng)關(guān)也可以通過配置和測試界面向各臺設(shè)備發(fā)送數(shù)據(jù)。在接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的過程中,都伴隨著數(shù)據(jù)流量指示燈的閃爍。經(jīng)反復(fù)測試,通信建立成功,接收數(shù)據(jù)和發(fā)送數(shù)據(jù)均為ASCLL碼,接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的正確率為100%。子串口的波特率可以根據(jù)實際需要由人機交互模塊或程序獨立設(shè)定。物聯(lián)網(wǎng)網(wǎng)關(guān)配置和測試界面如圖8所示。
圖8 物聯(lián)網(wǎng)網(wǎng)關(guān)配置和測試界面
文中設(shè)計了基于Atmega128的物聯(lián)網(wǎng)網(wǎng)關(guān)通信信道擴展系統(tǒng),經(jīng)實際應(yīng)用驗證,該擴展系統(tǒng)設(shè)計可靠,運行穩(wěn)定,滿足方案要求,有利于提高物聯(lián)網(wǎng)的數(shù)據(jù)傳輸效率,促進該技術(shù)的發(fā)展。
[1]Gubbi J,Buyya R,Marusic S,et al.Internet of Things(IoT): A vision,Architectural elements,and future directions[J]. Future Generation Computer Systems,2013,29(7):1645-60.
[2]李燈華,李哲敏,許世衛(wèi).我國農(nóng)業(yè)物聯(lián)網(wǎng)產(chǎn)業(yè)化現(xiàn)狀與對策[J].廣東農(nóng)業(yè)科學(xué),2015(20):149-157.
[3]Gluhak A,Krco S,Nati M,et al.A survey on facilities for experimental internet of things research[J].IEEE Communications Magazine,2011,49(11):58-67.
[4]錢志鴻,王義君.面向物聯(lián)網(wǎng)的無線傳感器網(wǎng)絡(luò)綜述[J].電子與信息學(xué)報,2013,35(1):215-227.
[5]謝磊,殷亞風(fēng),陳曦,等.RFID數(shù)據(jù)管理:算法、協(xié)議與性能評測[J].計算機學(xué)報,2013,36(3):457-470.
[6]高星偉,過靜珺.基于時空系統(tǒng)統(tǒng)一的北斗與GPS融合定位[J].測繪學(xué)報,2012,41(5):743-755.
[7]陳力平,徐冠捷.基于單片機的串口擴展器[J].微計算機信息,2006,22(3-2):13-15.
[8]唐洪富.基于LPC系列單片機的串口擴展器設(shè)計[J].微型機與應(yīng)用,2015,34(13):97-99.
[9]劉小芳,曾黃麟,呂炳朝.單片機的多串口擴展技術(shù)的設(shè)計[J].計算機測量與控制,2004,12(11):1088-1090.
[10]李敏,孟臣.RS-232多串口擴展器件SP2538及其應(yīng)用[J].國外電子元器件,2004,(4):43-46.
[11]張羽,胡玉貴,殷奎喜,等.基于FPGA的多串口擴展實現(xiàn)[J].電子器件,2009,32(1):233-236.
[12]李曉梅.可擴展并行算法的設(shè)計與分析[M].北京:國防工業(yè)出版社,2000.
[13]譚浩強.C程序設(shè)計[M].北京:清華大學(xué)出版社,2005.
[14]潘方.RS 232串口通信在PC機與單片機通信中的應(yīng)用[J].現(xiàn)代電子技術(shù),2012,35(13):69-71.
[15]吳獻.RS-232通信接口芯片在0.6um工藝下的設(shè)計與實現(xiàn)[D].浙江:浙江大學(xué),2006:15-18.
[16]陳冬云,杜敬倉,任柯燕,等.Atmega128單片機原理與開發(fā)指導(dǎo)[M].北京:機械工業(yè)出版社,2005.
Research on communication channel expansion of Internet of things gateway
ZHANG Rui,LANG Hong,LI Cong-rong,CHEN Zheng-hao,LI Da,WANG Yi-zhong
(College of Electronic Information and Automation,Tianjin University of Science&Technology,Tianjin 300222,China)
There are a large numbers of bottom equipments in the Internet of things,and the communication between them may not be smooth.So this paper takes the microcontroller as the controller,combined with the RS232 interface circuit to achieve the expansion of the Internet of things gateway communication channel.In this paper,the structure of the gateway system is given,the hardware and software design is carried out,and a RS232 interface is connected with four information sensing devices.The development of the gateway can improve the hardware and data transmission efficiency of the bottom layer of the Internet of things,and has some practical value in the system using the Internet of things technology.
internet of things;RS232;gateway;channel expansion
TN913.3
A
1674-6236(2016)24-0132-04
2015-12-16 稿件編號:201512172
天津市科技特派員項目(15JCTPJC60800);天津科技大學(xué)大學(xué)生實驗室創(chuàng)新基金(1402A201)
張 銳(1979—),男,遼寧營口人,博士,副教授。研究方向:測控與光譜技術(shù)。