華南農(nóng)業(yè)大學(xué)電子工程學(xué)院 王 建 吳觀法 曾銳文
在工業(yè)場景中串口傳輸依然是最主要的通信方式,當(dāng)前在無線通信和物聯(lián)網(wǎng)發(fā)展的影響下,傳統(tǒng)串口數(shù)據(jù)采集方式迎來了創(chuàng)新的契機,即實現(xiàn)無線遠(yuǎn)程串口數(shù)據(jù)傳輸與控制,其中點到點遠(yuǎn)程通信具有重要意義。
LTE(Long Term Evolution,長期演進)為解決第三代通信技術(shù)暴露出的問題而提出的下一代移動通信統(tǒng)一標(biāo)準(zhǔn),目前是第四代通信技術(shù),以其高速、寬帶、低成本為現(xiàn)階段下眾多設(shè)備連接服務(wù)器、傳輸采集的數(shù)據(jù)提供可靠保證,得到廣泛應(yīng)用[1-2]。
基于MT7628片上系統(tǒng)芯片下掛數(shù)據(jù)采集系統(tǒng),通過串口獲取所需傳感數(shù)據(jù);設(shè)立TCP服務(wù)器,通過該服務(wù)器中轉(zhuǎn)客戶端獲得的數(shù)據(jù)。采用LTE遠(yuǎn)程控制器,使用LTE網(wǎng)絡(luò)介入Internet,登錄到TCP遠(yuǎn)程服務(wù)器,向遠(yuǎn)程TCP遠(yuǎn)程服務(wù)器發(fā)送從串口收到的數(shù)據(jù),并且接收來自手機/電腦客戶端端的控制數(shù)據(jù)。手機/電腦端的客戶端可以通過互聯(lián)網(wǎng)接入TCP遠(yuǎn)程服務(wù)器,獲取TCP服務(wù)端轉(zhuǎn)發(fā)來的來自MT7628串口控制器的數(shù)據(jù),并向TCP服務(wù)端發(fā)送控制命令,再由TCP服務(wù)器轉(zhuǎn)發(fā)到MT7628串口控制器,再由串口控制器發(fā)送到下掛設(shè)備,系統(tǒng)框圖如圖1所示。
主控芯片采用聯(lián)發(fā)科MTK公司生產(chǎn)的一款以MIPS 24K CPU為核心的SOC芯片MT7628,帶有多個外設(shè),包括2.4GHz的Wi-Fi網(wǎng)卡,5個有線網(wǎng)卡,3個串口,多路GPIO,SD-XC接口,USB接口等[3]。更為關(guān)鍵的是MT7628芯片中帶有MMU內(nèi)存管理模塊,可以運行Linux內(nèi)核的系統(tǒng),涉及到Linux引導(dǎo)移植、內(nèi)核移植。
EC20 R2.0 Mini PCIE-C是移遠(yuǎn)通信采用PCI Express Mini Card標(biāo)準(zhǔn)接口的LTE模塊。它采用了LTE第三代合作伙伴計劃(3rd Generation Partnership Project,3GPP)Rel.11技術(shù),內(nèi)置豐富的網(wǎng)絡(luò)協(xié)議,集成多個工業(yè)標(biāo)準(zhǔn)接口,需要進行LTE4G驅(qū)動及撥號移植。
圖1 系統(tǒng)框圖
包括Linux引導(dǎo)移植、內(nèi)核移植,本文采用的是linux-3.18.29,解壓MediaTek_ApSoC_SDK_4320_20150414.tar.bz2可得到Uboot文件夾。
Linux系統(tǒng)中EC20模塊通過虛擬USB串口設(shè)備,經(jīng)點對點協(xié)議隱形程式(Point to Point Protocol Daemon,PPPD)軟件撥號達到上網(wǎng)目的,所以移植EC20的驅(qū)動就是移植EC20的USB虛擬串口。這種USB虛擬串口的接口是通用的,在Linux-3.18.29的內(nèi)核中已經(jīng)含有USB的虛擬驅(qū)動代碼,只需添加EC2設(shè)備信息,即可被Linux系統(tǒng)識別。移植EC20 PPPD撥號軟件主要包括:解壓ppp-2.4.7.tar.gz后編譯ppp-2.4.7,將編譯后得到三個MIPS構(gòu)架運行文件pppd、pppdump、pppstats文件分別上傳到目標(biāo)板的/usr/sbin目錄中,然后在目標(biāo)板上制作LTE撥號腳本wcdma、wcdma-chat-connect、wcdma-chat-disconnect。
本文中TCP服務(wù)端是在擁有公網(wǎng)IP地址的Ubuntu服務(wù)器中工作,采用C語言編程,主要函數(shù)包括:void init(const char * IP,const char *serverport)函數(shù),用于初始化服務(wù)端端口并綁定服務(wù)端端口,建立監(jiān)聽端口;void service(void)函數(shù),用于啟動TCP服務(wù)端,啟動后會等待來自MT7628設(shè)備和遠(yuǎn)程控制端的TCP連接;調(diào)用void *service_thread(void *p)函數(shù)會建立一個新的線程,該線程和連接的TCP客戶端保持通信。
在本設(shè)計中,MT7628以TCP客戶端的方式與遠(yuǎn)程服務(wù)器建立連接,連接成功以后,讀取串口,串口開始讀取來自下掛設(shè)備的信息,同時把來自TCP服務(wù)端的消息發(fā)往串口。測試框圖如圖2所示。
圖2 測試流程圖
圖3 遠(yuǎn)程客戶端間測試
測試一:將TCP服務(wù)端運行在遠(yuǎn)程Ubuntu服務(wù)器中,采用的域名是廣州元電荷科技公司公網(wǎng)地址www.ivoten.cn,可以直接被互聯(lián)訪問。首先通過scp命令將tcpserver文件上傳至Ubuntu服務(wù)器,在遠(yuǎn)程Ubuntu服務(wù)器上啟動tcpserver,在tcpserver啟動后,將TCP客戶端A、B的地址同樣設(shè)置為www.ivoten.cn,端口號為8080。依次啟動測試TCP客戶端A,TCP客戶端B。連接成功以后,進行兩個TCP客戶端的互發(fā)信息,檢測能否相互進行通信。測試情況如圖3所示。
測試二:打開擁有公網(wǎng)IP遠(yuǎn)程的Ubuntu服務(wù)器,啟動tcpserver,端口號為8080,域名www.ivoten.cn,連接MT7628串口控制器,將MT7628的4G模式打開,設(shè)置MT7628串口控制器目標(biāo)地址為www.ivoten.cn,端口號8080,打開電腦TCP客戶端,連接到www.ivoten.cn 8080端口。在電腦端打開串口助手,向MT7628串口控制器發(fā)送”from RS232 Uart”,電腦的TCP客戶端向TCP服務(wù)器發(fā)送”from TCP CLIENT”。在串口助手收到“”from TCP CLIENT”,TCP客戶端收到“from RS232 Uart”,測試如圖4所示。
圖4 公網(wǎng)MT7628遠(yuǎn)程控制器接入TCP服務(wù)端測試
測試三:把STM 32通過RS232接入到MT7628串口控制器上,分別測試電腦的TCP客戶端向服務(wù)器發(fā)送AT命令,STM 32按照串口發(fā)來的AT指令采集溫濕度,并要求返回溫濕度,當(dāng)串口向STM 32發(fā)送AT+TEMPERATURE=? 時,STM 32回采集DHT11的數(shù)據(jù),得到溫度數(shù)據(jù),返回溫度數(shù)據(jù)到串口,如圖5所示。
圖5 客戶端點到點測試結(jié)果
本文根據(jù)物聯(lián)網(wǎng)中節(jié)點間數(shù)據(jù)傳輸交換的需求,設(shè)計了一個點對點遠(yuǎn)程數(shù)據(jù)傳輸,設(shè)置中轉(zhuǎn)TCP服務(wù)器,TCP服務(wù)器得到來自MT7628的TCP客戶端消息,把消息轉(zhuǎn)發(fā)到電腦的TCP客戶端;電腦中TCP客戶端的控制消息發(fā)到TCP服務(wù)端,TCP服務(wù)端把消息轉(zhuǎn)發(fā)到MT7628的TCP客戶端,完成點對點遠(yuǎn)程數(shù)據(jù)傳輸控制。
[1]曹旭東,薛大歡,何得平.基于TD-LTE的智慧油田測控系統(tǒng)的研究與實現(xiàn)[J].計算機測量與控制,2016,24(5):117-119,123.
[2]賴華堯,黃鳳辰,花再軍,陳釗.基于3G的地鐵MVB數(shù)據(jù)傳輸?shù)碾p通道設(shè)計[J].工業(yè)控制計算機,2017,30(5):6-8.
[3]聯(lián)發(fā)科.發(fā)布芯片MT7628布局智能家庭[J].電視技術(shù),2014,38(20):47.