陳業慧,黃 凱
(安徽新華學院電子通信工程學院,安徽 合肥 230088)
目前智能車和模式識別普遍采用儲存復盤的方式來調試,這對實時系統分析顯然具有一定的滯后性,因模式識別可以忽略彩色信息轉而采用二值化的圖像,這就大大縮小了圖像的數據的大小,使得低成本的基于nRF24L01的實時圖像傳輸成為可能.
發送方攝像頭采用 OV7725,輸出二值化圖像,經過MK60DNZ512進行DMA采集,壓縮,并通過nRF24L01傳輸給接收方的nRF24L01,配合STM32F103進行壓縮二值化圖像的接收并通過CH340串口模塊傳輸給上位機,上位機使用LABVIEW對傳輸過來的圖像進行有效性監測并解壓縮實時的顯示與處理.系統原理如圖1所示.

圖1 系統設計方案
(1)發送方主控采用帶16個通道的DMA控制器,主頻100MHz的MK60DNZ512.DMA允許不同速度的硬件裝置來溝通,而不需要依賴于 CPU 的大量中斷負載,使用MK60的DMA模塊進行攝像頭數據的采集,大大減輕了CPU的負擔,使得CPU有空閑資源處理系統中的其他任務.
(2)接收方主控采用STM32F103C8T6,72MHz主頻.發送和接收共用的可編程波特率[1],最高串口速度達4.5Mbits/s,配合CH340的最高2Mbps的串口速率,經試驗最高可達兩百萬波特率的無差錯串口透傳,為圖像的實時傳輸提供了物理基礎.
系統選用nRF24L01P+PA模塊,功率100MW.速率可達2Mbps,增強型的 ShockBurstTM模式可以自動的控制應答(ACK)與重發數據包[2],當發送方未接收到接收方的ACK應答信號時,自動的重新發送當前數據包,大大減小了丟包率的同時減輕了MCU的負擔.
其工作模式由片上CE引腳與PWR_UP,PRIM_RX寄存器共同決定[3],與MCU的硬件連接見圖2和圖3.

圖2 MK60與NRF的連接

圖3 MK60與STM32的連接
OV7725直接輸出二值化后的像素,經DMA采集壓縮后,在160x120的分辨率下一幀圖像僅為2.4Kb.
當硬件接口配置好之后,接下來最主要的工作就是如何用軟件來編程實現圖像數據的采集、壓縮、傳輸、接收、解壓以及顯示.
假設某行接收的五個圖像數據為:0x80,0x01,0x55,0xAA,0x01則我們看到的見圖4.

圖4 40個像素圖
1表示黑色,0表示白色,這樣一個字節就可以表示8位像素,如0x80對應的二進制為10000000(2),如此就能把19200個像素點壓縮為2400字節進行傳輸.
為了避免攝像頭采集的時序與nRF24L01發送的時序相沖突,故采用采集一幅圖像后再進行無線發送的方案.接收到的一幀圖像數據為2400字節,需要在幀頭加上0x55,幀尾加上0xAA,便于上位機的處理,故一幀圖像總大小為2402字節,程序流程圖見圖5.

圖5 nRF24L01發送程序流程圖
STM32F103C8T6循環查詢nRF24L01寄存器,一旦有數據接收則立刻通過串口發送至CH340,CH340將TTL電平虛擬成USB串口.程序流程圖見圖6.

圖6 nRF24L01接收和發送至上位機程序流程圖
上位機采用LABVIEW編寫.LabVIEW采用可視化的G語言編寫程序. LabVIEW集成了串口讀取控件VISA與一系列數據顯示控件,利用LabVIEW進行上位機的編寫僅需考慮數據的處理,大大提高了開發效率.對串口進行數據操作需要安裝VISA支持[4].
從串口讀取到的數據為流的形式,故需要設置一個大于一幀圖像的數據緩沖區,并配置串口波特率為2000000,讀取停止符為0xAA.
當接收遇到接收停止符0xAA時可視為接收到一幀圖像,但此時需要檢測接收到的數據總長度是否為2402個字節,同時檢測包頭數據是否為0x55,若判斷兩個條件成立則可視為這是一幀完整的圖像數據.串口數據流幀的讀取與有效性判斷見圖7.

圖7 幀有效性判斷

圖8 圖像數據的解壓縮與顯示
判斷為有效幀后就可進行圖像數據的解壓縮與顯示,將一個字節的數據解壓為二進制的二維布爾數組轉換并經過繪圖控件將圖像顯示出來,當數據源源不斷地傳至上位機,圖像控件就會不斷地刷新數據,形成視頻流.圖像的解壓與顯示見圖9.經實驗最大可達27幀每秒的速率,顯示效果見圖9.

圖9 圖像的顯示與處理
本設計利用計算機CPU高主頻的優勢,提出用nRF24L01結合STM32,實現了一種低成本無線圖像傳輸方案,圖像數據可在上位機進行任意的處理,例如賽道模式識別,實時獲取機器學習所需的訓練數據集,經試驗測試,效果良好.
參考文獻:
[1]Texas Instruments. STM32F103C8T6 Data Sheet[EB/OL]. http://www.st.com, 2016.
[2]Nordic nRF24LU1+ Data Sheet[EB/OL]. http:// www.nordicsemi.com, 2016.
[3]葉鵬,陳星,張華. 基于MCU和nRF24L01的圖像無線傳輸設計[J]. 機電產品開發與創新,2013,(3):89-91.
[4]呂向鋒,高洪林,馬亮,等. 基于LabVIEW串口通信的研究[J]. 國外電子測量技術,2009,(12):27-30,42.