張 銳,郎 洪,李叢蓉,陳正豪,李 達,王以忠
(天津科技大學 電子信息與自動化學院,天津300222)
物聯網網關通信信道擴展的研究
張 銳,郎 洪,李叢蓉,陳正豪,李 達,王以忠
(天津科技大學 電子信息與自動化學院,天津300222)
針對物聯網技術中遇到的底層設備多而通信可能不暢的問題,文中以單片機作為控制器,結合RS232接口擴展電路,實現物聯網網關通信信道的擴展。文中給出了網關系統結構圖,進行了軟硬件設計,使一個RS232接口連接四臺信息感知設備,并能實現接口之間的相互轉換。該網關的研制可以提高物聯網底層的硬件攜帶能力和數據傳輸效率,在使用物聯網技術的系統中具有一定的實用價值。
物聯網;RS232;網關;信道擴展
近年來,隨著物聯網技術以及與物聯網相關的電子標簽、中間件系統、嵌入式系統和云計算技術的發展,物聯網及其相關技術受到廣泛的關注,各國投入大量的人力物力開展物聯網及其相關技術的研究[1-3]。從技術框架上,物聯網可分為三層:感知層、網絡層、應用層[4]。這三層有機結合,分工合作從而實現對信息的“全面感知、可靠傳送、智能處理”。物聯網網關位于感知層和網絡層之間,是傳感層向網絡層傳輸數據的必經環節。現有的信息感知設備,如RFID標簽[5]、GPS定位[6]等均通過RS232接口向網絡層傳輸數據,而每一臺信息感知設備都需要物聯網網關層配置一個接口,當信息感知設備較多時,這樣的配置無疑會造成網關設備復雜,增加設備成本;同時由于信息感知設備的數據采集和傳輸過程并非連續不斷,這樣的配置使得接口利用率降低,數據傳輸效率下降。因此,將物聯網網關的通信信道擴展,有利于提高物聯網的數據傳輸的效率,從而推動物聯網技術的應用。
目前已有的物聯網網關通信信道的擴展采用雙四通道多路轉換器4052[7]、SPI總線的GM8142擴展器[8]、UART多串口擴展器SP2349[9]、SP2538[10]、FPGA多串口擴展器[11],文中采用VK系列中VK3214串口擴展芯片并結合AVR系列單片機進行串口擴展。
系統總體結構如圖1所示,從圖1可以看出,系統以單片機(Atmega128)作為控制器,結合RS232接口及擴展電路,擴展電路即采用VK3214串口擴展芯片的擴展電路,實現物聯網網關接口的擴展,使其從原先的一個接口連接一臺感知設備,擴展為一個接口連接四臺感知設備,同時實現接口之間的相互轉換,提高接口的兼容性。在軟件上,以RS232通訊協議為基礎,針對物聯網網關的信道擴展需求,制定“一對四”通訊協議和接口通訊模式轉換程序[12-13]。軟硬件結合實現物聯網網關的信道擴展。

圖1 系統總體結構圖
2.1 RS232接口電路
為了使RS232接口電路的電壓與單片機的供電電壓保持一致,必須經過接口電路進行標準轉換[14-15],目前較常用的方法是使用集成電路轉換器件,文中采用MAX232,利用RS232轉換TTL模塊進行物聯網網關和單片機之間的通信連接。在本設計中,單片機的RXD0、TXD0接口經過TTL與RS232轉換電平后,用九針串口線引出接到物聯網網關,RS232接口電路如圖2所示。

圖2 RS232接口電路
2.2 RS232擴展電路
RS232擴展電路通過利用 VK3214串口擴展芯片搭建起信息感知設備和單片機之間的橋梁,進行數據的儲存和傳遞。VK3214是支持UART通信接口的4通道UART器件,用來實現UART橋接/擴展4個串口(UART)的功能。當VK3214的主接口為UART時,僅需要主串口MRX、MTX連接單片機的USART1,采用標準的UART協議進行通信。
在本設計中,將Atmega128的RXD1、TXD1接口引出與VK3214串口擴展芯片主串口的MTX、MRX相連,串口擴展芯片的4對RXD、TXD同樣經過TTL和RS232轉換電平后,分別用九針串口線引出接到4個信息感知設備上,即可實現串口數據的收發。RS232接口擴展電路如圖3所示。

圖3 RS232擴展電路
2.3 Atmega128外圍控制電路
Atmega128為基于AVR RISC結構的8位低功耗CMOS微處理器[16]。在Atmega128外圍控制電路中還包括撥碼開關部分,在“一對四”通信協議中,每一個撥碼開關對應一個信息感知設備,進行數據流的通信,其中,帶有電源指示燈及數據流量指示燈可顯示故障狀況。如圖4所示為本設計中Atmega128外圍控制電路。

圖4 Atmega128外圍控制電路
3.1 初始化設置
Atmega128給VK3214的復位管腳發送一個低電平信號,VK3214復位后根據外部晶振電路對VK3214的主串口進行波特率、位長度、停止位、校驗位等進行默認的配置,由VK3214的數據手冊可知,若晶振的頻率為7.372 8 MHz,VK3214主串口的默認波特率為19 200,8位數據,1位停止位,無校驗位。再通過VK3214主串口對子串口相關的寄存器進行相應的配置。
3.2 上行通信
上行通信指信息感知設備產生的數據通過VK3214發送給Atmega128,進而傳遞給物聯網網關,上行通信程序流程圖如圖5所示,中斷服務子程序流程圖如圖6所示。定義四臺信息感知設備分別為A、B、C、D,幾臺信息感知設備采用搶占的方式,通過子串口給VK3214發送數據,VK3214子串口接收到數據后產生中斷,通知Atmega128讀取數據。Atmega128接收到中斷請求信號后通過讀取VK3214的中斷狀態寄存器確定是哪個子串口有數據,再通過讀取這一子串口的FIFO狀態寄存器確定子串口接收FIFO中的數據個數,然后通過讀取子串口FIFO數據寄存器,從這一子串口讀取相應數量的字節數據,最后利用Atmega128的USART0將數據傳遞給物聯網網關,從而完成上行通信。

圖5 上行通信程序流程圖

圖6 中斷服務子程序流程圖
3.3 下行通信
下行通信指物聯網網關數據經Atmega128通過VK3214發送給各臺信息感知設備(A、B、C、D),程序流程圖如圖7所示。定義4個撥碼開關分別為K1、K2、K3、K4,當K1被按下時,A接收數據,當K2被按下時,B接收數據,當K3被按下時,C接收數據,當K4被按下時,D接收數據,設備接收數據的同時有對應數據流量指示燈的閃爍。當Atmega128接收來自物聯網網關數據時,VK3214主串口產生中斷接收數據并存放在相應子串口的發送FIFO中,通過發送FIFO將數據傳遞給相應的信息感知設備,下行通信結束。

圖7 下行通信程序流程圖
在實驗測試過程中發現單片機的串口波特率要求是VK3214子串口波特率的倍數,若倍數太小會導致接收FIFO溢出,倍數過大則會導致發送FIFO溢出,發送FIFO的數據還沒發出去,又送進來新的數據。為了便于測試,將每個子串口的波特率設置為4800,單片機串口的波特率即物聯網網關配置和測試界面中的波特率設置為19200,測試中有四臺信息感知設備,設備1,2,3,4分別為溫度信息感知設備,濕度信息感知設備,RFID標簽信息感知設備,GPS定位信息感知設備,均通過RS-232接口向網絡層傳輸數據,物聯網網關配置和測試界面將會顯示采集的數據,如COM1:23,則表示數據23是來自設備1即溫度信息感知設備,表明當前溫度為23℃。物聯網網關也可以通過配置和測試界面向各臺設備發送數據。在接收數據和發送數據的過程中,都伴隨著數據流量指示燈的閃爍。經反復測試,通信建立成功,接收數據和發送數據均為ASCLL碼,接收數據和發送數據的正確率為100%。子串口的波特率可以根據實際需要由人機交互模塊或程序獨立設定。物聯網網關配置和測試界面如圖8所示。

圖8 物聯網網關配置和測試界面
文中設計了基于Atmega128的物聯網網關通信信道擴展系統,經實際應用驗證,該擴展系統設計可靠,運行穩定,滿足方案要求,有利于提高物聯網的數據傳輸效率,促進該技術的發展。
[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]李燈華,李哲敏,許世衛.我國農業物聯網產業化現狀與對策[J].廣東農業科學,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]錢志鴻,王義君.面向物聯網的無線傳感器網絡綜述[J].電子與信息學報,2013,35(1):215-227.
[5]謝磊,殷亞風,陳曦,等.RFID數據管理:算法、協議與性能評測[J].計算機學報,2013,36(3):457-470.
[6]高星偉,過靜珺.基于時空系統統一的北斗與GPS融合定位[J].測繪學報,2012,41(5):743-755.
[7]陳力平,徐冠捷.基于單片機的串口擴展器[J].微計算機信息,2006,22(3-2):13-15.
[8]唐洪富.基于LPC系列單片機的串口擴展器設計[J].微型機與應用,2015,34(13):97-99.
[9]劉小芳,曾黃麟,呂炳朝.單片機的多串口擴展技術的設計[J].計算機測量與控制,2004,12(11):1088-1090.
[10]李敏,孟臣.RS-232多串口擴展器件SP2538及其應用[J].國外電子元器件,2004,(4):43-46.
[11]張羽,胡玉貴,殷奎喜,等.基于FPGA的多串口擴展實現[J].電子器件,2009,32(1):233-236.
[12]李曉梅.可擴展并行算法的設計與分析[M].北京:國防工業出版社,2000.
[13]譚浩強.C程序設計[M].北京:清華大學出版社,2005.
[14]潘方.RS 232串口通信在PC機與單片機通信中的應用[J].現代電子技術,2012,35(13):69-71.
[15]吳獻.RS-232通信接口芯片在0.6um工藝下的設計與實現[D].浙江:浙江大學,2006:15-18.
[16]陳冬云,杜敬倉,任柯燕,等.Atmega128單片機原理與開發指導[M].北京:機械工業出版社,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);天津科技大學大學生實驗室創新基金(1402A201)
張 銳(1979—),男,遼寧營口人,博士,副教授。研究方向:測控與光譜技術。