趙智佩,余震虹
(江南大學 物聯網工程學院,無錫 214122)
當前,為了降低汽車污染物的排放,人們逐漸使用電動汽車作為交通工具.考慮到車輛電池在工作時的安全,需要一個系統對其工作狀態進行實時監測,以便于后續工作的開展.此前,國內外在電池信息監測系統上大量運用了GPRS 和3G網絡技術,部分運用了4G網絡技術都能達到較好的效果.
但為了提高整體的通信質量和提供多種監測方式,系統采用4G網絡技術和WLAN網絡技術.4G網絡通信作為當下流行的通信技術,它有較高的通信速度,提高了通信的靈活性以及智能性;有更寬的網絡頻譜,兼容性能平滑度大大提高,并改善了使用效率,多媒體通信質量得到了優化.同時結合了WiFi 無線通信建立局域網通信,極大的豐富了監測終端的網絡應用與近程數據傳輸.無線局域網技術的優勢很多:具有傳輸速度快的優勢;對人體健康危害較小等.WiFi的應用范圍正在逐漸擴大,WiFi 技術仍是將來網絡技術的主要發展趨勢,隨著科技的不斷發展與進步,它也會得到不斷的完善與優化.
目前,該系統可以實時觀察電池的電壓與工作溫度,并且根據4G 和WiFi 組網可以實現近,遠程實時準確提供電池的電壓與環境溫度數據,確保電池運行的安全與穩定.滿足監測系統的組網靈活,安全可靠,便于觀察的需求.
檢測系統的組成涉及了數據采集客戶端和服務器兩部分,首先數據采集客戶端是以S3C2440處理器為核心,并包括內部自帶A/D 轉換器,溫度傳感器,4G 通信模塊和WiFi 通信模塊等;服務器由兩部分組成,一是數據采集客戶端由4G 通信模塊通過Internet 向遠程服務器發送采集的數據,二是由WiFi 通信模塊向周邊用戶的移動設備發送數據.另外檢測系統同時可以組成4G-WiFi網絡向用戶提供流量數據服務.監測系統的示意圖如圖1.

圖1 監測系統的整體示意圖
整個系統的硬件部分包括:ARM9 嵌入式開發板,4G 通信模塊,WiFi 通信模塊和溫度傳感器DS18B20模塊.硬件連接如圖2所示.
主控芯片采用的是三星公司的一款基于ARM9 內核1 6/3 2 位精簡指令集(R I S C)3 2 位微處理器S3C2440A 芯片,主要負責數據的采集與數據的轉發等功能,是整個系統結構的核心.具體采用的是友善之臂MINI2440-FriendlyARM 核心板,該核心基于Linux2.6.32.2 內核,采用沉金工藝的4 層板設計,專業等長布線,保證關鍵信號線的信號的完整性,并采用專業穩定的CPU 內核電源芯片和復位芯片來保證系統運行時的穩定性.其主頻400 MHz,最高533 MHz,在板64MSDRAM,32 bit 數據總線,256 M/1 GB Nand Flash 和2MNor Flash.接口和資源:1個34pin GPIO 接口,1個USB Host 和1個100 M 以太網RJ-45 接口(采用DM9000網絡芯片)等.如圖3所示.

圖2 整體硬件結構圖

圖3 MINI2440 開發板
ARM9 S3C2440 芯片自帶一個8 路10 位A/D 轉換器,它的最大轉換率為500 kHz,非線性度為正負1.5 位,其轉換時間[1]:當系統時鐘為50 MHz,比例(預分頻器)值為49,則:

A/D 轉換器的供電電壓為3.3 V,模擬輸入電壓范圍為0~5 V,滿量程為5 V/1024,最小有效位(LSB)為4.88 mV,最小有效位(LSB)與模擬輸入電壓有關.
系統采用的4G模塊是上海移遠EC20 LTE模塊,采用LTE 3 GPP Rel.9 技術,雖然在功能上與目前最新Rel.14 版有一定的差異,但并不影響正常使用.此模塊支持最大下行速率100 Mbps 和最大上行速率50 Mbps.EC20 LTE模塊采用Mini PCIe 封裝通過通信模塊轉接板(Mini PCI-E 接口卡)與主控板進行USB 連接通信,Mini PCI-E 接口定義為USB 信號及3.6 V 電壓,USB 接口5 V 電壓通過DC to DC 電壓源芯片轉換成3.6 V 電壓和2 A 電流供給模塊及UIM/SIM 卡工作.EC20 LTE模塊支持頻段FDD-LTE:B1/B3 和TDD-LTE:B38/B39/B40/B41;支持Mini PCIe 接口:采用PCI Express Mini Card 1.2 標準接口;支持LTE 特性:符合3 GPP R9 CAT3 FDD 和TDD,支持1.4-20 MHz 射頻帶寬,FDD:Max 100 MHz (DL)50 MHz(UL),TDD:Max 61 MHz (DL)18 MHz (UL);支持的網絡協議為:支持TCP/UDP/PPP/QMI/HTTP 等協議,支持PAP 和CHAP 協議,支持標準AT 指令集及擴展AT 指令集.其中,Mini PCI-E 轉USB 電路原理圖如圖4.

圖4 Mini PCI-E 轉USB 電路原理圖
系統采用的無線通信模塊RT3070 是高度集成的MAC/BBP 和2.4 G RF 單芯片,芯片支持150 Mbps 至300 Mbps的吞吐量.它完全符合IEEE802.11n draft 4.0 和IEEE802.11 b/g 標準,在較遠的高吞吐量下提供可靠,成本效益高,功能豐富的無線連接.由優化的RF 結構和基帶算法提供了卓越的性能和低功耗.智能的MAC 設計采用了高效的USB 引擎和硬件數據處理加速器,從而不使主機處理器過載.符合本系統的需求.
DS18B20 是美國Dallas 公司生產的單總線數字溫度傳感器,它具有微型化,低功耗,高性能,抗干擾能力強,易配微處理器等優點,可直接將溫度轉化為數字信號處理器處理.測量溫度范圍是-55°C~125°C,測溫誤差為±0.5°C.可編程的分辨率為9~12 位,可實現高精度測量.具有負壓特性:電源極性接反時,芯片不會因發熱燒毀.由電源線,信號線和地線三個引腳組成的三極管集成電路.DS18B20的應用電路有:寄生電源供電方式,寄生電源強上拉供電方式和外部電源供電方式[2].該系統采用外部電源供電方式,DS18B20的工作電壓范圍3.0V~5.5V,信號引腳的上拉電阻范圍4.7 KΩ~10 KΩ.其中應用原理圖如圖5.

圖5 DS18B20 外部電源供電電路圖
系統所采用的S3C2440 芯片內部含有USB 主機接口和USB 設備接口,系統主要應用的是USB 設備接口,它采用DMA 接口方案,允許控制傳輸,中斷傳輸和DMA 接口的批量傳輸,具有5個帶FIFO的端點,支持USB2.0 協議,高速的理論速度為480 Mbps 和全速的理論速度為12 Mbps,包括支持熱拔插,標準統一和多設備連接等優點.其應用電路圖如圖6所示.

圖6 USB Host 硬件電路圖
系統USB 集線器模塊采用FE2.1 集線器控制芯片,它是集成性比較高,品質高,性能高,能耗低的高速七端USB2.0 集線器,系統應用其中三個端.FE2.1模塊電路原理圖如圖7所示.

圖7 FE2.1模塊電路原理圖
整個系統的軟件設計在友善之臂Linux-2.6.32.2-mini2440-20150709 內核的基礎上所開發設計的,主要包括Linux 操作系統的移植[3],4G-LTE模塊的驅動移植和RT3070 無線模塊的驅動移植以及所依賴的文件移植.通信模塊中的4G模塊和WiFi模塊都是通過USB 接口建立的驅動模塊,在移植通信模塊前先要編譯Linux 內核然后移植驅動.要實現4G-WiFi 路由則需要移植iptables,它可以完成封包過濾,封包重定向和網絡地址數據包轉換(NAT)等功能.關于iptables的具體移植方法,可以從網絡上了解.
(1)支持4G模塊的內核編譯
進入內核的目錄并對內核進行裁剪,執行make menuconfig 進行界面選擇Multi-purpose USB Networking Framework 將Linux 內核的rndis_host 配置為動態模塊,可以在Linux 下使用USB網絡.選擇USB driver for GSM and CDMA mdems,實現Linux 內核對4G模塊驅動的支持.選擇所有PPP網絡協議選項,可以使Linux 內核支持4G網絡撥號,當4G 通信模塊移植完成后可以通過PPP 撥號的方式連接網絡和互聯網.
(2)4G 通信模塊驅動移植安裝
通過對所提供的Linux 驅動源碼和撥號聯網程序進行修改編譯生成可執行4G模塊驅動文件.使用insmod 命令將4G模塊加載到內核中,移植成功后可以看出在4G模塊在系統中被映射成為的網口和4G網卡IP 地址等信息,可以Ping 公網測試則移植成功[4,5].
(1)支持WiFi模塊AP模式的內核編譯
在Linux 內核選項中選擇IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)使內核支持WiFi模塊的AP 功能.選擇RF switch subsystemsupport,此選項為了節約電力,很多無線網卡都有內置的射頻開關用于開啟和關閉設備.選擇Generic IEEE802.11 Networking Stack (mac80211),Generic IEEE 802.11 Networking Stack (mac80211)選項是獨立于硬件的通用IEEE 802.11 協議棧模塊,可以讓系統能更好的控制硬件.
(2)WiFi 通信模塊驅動的移植
2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2 驅動下載,此驅動是RT3070 在Linux 操作系統上實現軟AP模式的驅動.解壓縮文件后,在2010_0203_RT3070_SoftAP_v2.4.0.1_DPA 目錄下有三個文件夾分別為MODULE,NETIF,UTIL,在這三個文件中均有Makefile,在所有Makefile中修改其中的支持平臺與平臺下的內核路徑和交叉編譯器.編譯通過后,在開發板修改rt2870ap.dat 文件讓rt3070ap 在啟動的時候配置成WPA2的加密方式,并依次執行insmod rtutil3070ap.ko,insmod rt3070ap.ko,insmod rtnet3070ap.ko.則可以系統可以識別無線模塊,并被映射成為相應的網口[6,7].
對于單總線結構的DS18B20的讀寫控制必須嚴格按照時序圖進行編程,通過嵌入式設備的通用I/O 口GPF0 直接驅動DS18B20的DQ 信號的交流端.通過調用精確的延時子程序,來對其準確時序控制[1].DS18B20的讀寫時序圖如圖8 和圖9.

圖8 DS18B20 寫時序

圖9 DS18B20 讀時序
在Linux 系統中把DS18B20的溫度傳感器程序通過運行交叉編譯器編譯成字符設備驅動.使用insmod 命令將溫度傳感器模塊加載到內核中,移植成功后可以在系統/dev中發現溫度傳感器模塊被映射成為DS18B20的驅動設備號.
Socket 接口是支持TCP/IP網絡的應用程序編程接口,是支持Linux 系統中通用的網絡接口,網絡的Socket 數據傳輸是一種特殊的I/O 接口,Socket 也是一種文件描述.在Socket 通信中有兩種通信協議:UDP協議(用戶數據報協議,面向無連接)和TCP 協議(傳輸控制協議,面向連接).UDP 協議和TCP 協議之間的區別如表1所示[8,9].

表1 UDP 協議和TCP 協議之間的區別
TCP 協議提供IP 環境下的數據可靠傳輸能力,它提供的服務包括數據流傳送,可靠性,有效流控,全雙工操作和多路復用.它建立連接使用三次握手過程,使一臺計算機發出的字節流無差錯的發向網絡上的其他計算機.在網絡比較弱的時候也能保證數據傳輸的質量,所以該系統選擇TCP 協議C/S 結構的Linux Socket網絡編程[10].TCP 協議的編程流程圖如圖10.

圖10 TCP 協議的編程流程圖
以4G網絡為例.TCP 協議的Socket的服務器首先運行,通過調用socket 函數創建一個Socket,然后調用bind 函數將其與本機地址以及一個本地端口號綁定,然后調用listen 函數在該Socket 上監聽,等待客戶端的連接,接著調用accept 函數來接受連接服務.客戶端程序先將接受的數據使用setsockopt 函數綁定到指定4G網絡端口,然后調用connect 函數和服務器建立連接,連接成功后客戶端和服務器之間調用send 和recv 來發送和接受數據.最后,兩邊都關閉Socket.其中數據信息前兩位為溫度數據,中間兩個空格,最后五位是電壓數據.
手機端通信采用C/S模式Android 開發結合Socket 完成網絡通信.通信系統采用Android 6 版本,以JDK7+Eclipse+SDK 為開發環境,客戶進入系統可以獲取WiFi 通信系統分配的IP 地址及設置通信端口號[11,12],啟動創建可以接受到客戶端發來的電池電壓與工作溫度數據.
數據采集采用3.3 V 電壓供電模擬電池實際5 V電壓,來測試電壓采集的數據如表2所示,電壓最大差約為0.33%,平均誤差為0.27%.采集的溫度數據與實際溫度沒有明顯的差距.由實驗數據可以總結出,該系統采集性能良好,電壓與溫度數據誤差較小,比較好的完成對模擬電池的信息數據的讀取.

表2 模擬電池信息采集表
通過制定好的通信協議對測試數據打包,然后經過嵌入式控制系統通過USB 接口傳到4G 通信模塊,通過4G 通信模塊向遠程服務器發送數據.如圖11,在客戶端運行發送數據程序.
如圖12,Linux 服務器通過Internet網絡接受到客戶端發送來數據后采用制定好的協議解析,然后加上系統的日期和時間.
如圖13,PC 機服務器通過Internet網絡接受到客戶端發送來數據后采用制定好的協議解析,然后加上系統的日期和時間.

圖11 客戶端運行狀態

圖12 服務器接收狀態

圖13 PC 機服務器接受狀態
手機通信服務端接受數據信息如圖14所示,每一條數據都占有客戶端不同的端口,并包含了每條數據發來的時間.

圖14 手機通信服務端接受效果
通過手機連接4G-WiFi 系統進行測試.通過串口通信在LTE 制式下測試不同環境(第一組:室外,第二組:室內,第三組:地下車庫)的丟包率和往返延時.測試結果如表3所示.

表3 LTE 制式下測試結果
本文系統在MINI2440 開發板上運行Linux 操作系統,將當前階段網絡數據速率傳播最快的4G 移動通信技術和常用的WiFi 無線通信技術結合起來,實現了可移動強,安全,操作簡單等特點,實現了溫度與電壓數據采集與傳輸,同時用戶可以隨時通過WiFi 終端連接上互聯網,為客戶端解決了網絡信號差,網速慢的問題.特別是具有實時性較強,設置簡單和實現容易等優點,非常適合實時監測的場景.