劉光碩 張路 劉海波 鄧自寧
北方民族大學 計算機科學與工程學院 寧夏 銀川 750000
隨著嵌入式技術和通信技術的發展,電路板被廣泛運用到各個行業。隨之而來的電路板檢測技術也變得越來越重要,它影響各行各業的發展,其中電路板通信方式的檢測顯得尤為重要。它承擔著傳輸數據的重要作用,如果出現問題,整個系統將會癱瘓。由于常用的通信方式不是插電即用,無法通過檢測電氣信號來判斷其好壞,所以現有的檢測儀器,如萬用表、示波器以及ICT在線監測儀器等都無法很好地實現對通信方式的檢測。本文介紹了對常用通信方式進行二次開發形成一個固件庫,利用固件庫中的接口檢測通信方式。該固件庫中包含了ZIGBEE[2]、WIFI[1]、LORA[3]等常用通信方式的設備初始化、設備參數以及數據傳輸等方法。用戶通過調用上述方法實現檢測儀器與通信方式的無線連接,進而檢測通信方式是否出現故障。
本系統選用ST公司出品的STM32F1系列芯片STM32F103 ZET6作為中控芯片。該芯片擁有體積小,功能強以及開發簡單的特點。芯片提供了5路串口,可供系統同時連接5種通信方式。F1系列芯片的開發采用標準硬件庫,通過硬件庫提供的接口實現系統開發,方便快捷。
LORA模塊選擇ATK-LORA-01。模塊具有廣播與數據監聽的功能將模塊地址設置為 0xFFF,可以監聽相同信道上的所有模塊的數據傳輸,發送的數據,可以被相同信道上任意地址的模塊收到,從而起到廣播和監聽的作用。
模塊設計是采用高效的ISM 頻段射頻 SX1278 擴頻芯片,模塊的工作頻率為410~441Mhz,以1Mhz頻率為步進信道,共32個信道,可通過 AT 指令在線修改串口速率,發射功率、空中速率、工作模式等各種參數,并且支持固件升級功能。
ATK-LORA-01 模塊具有: 體積小、 靈敏度高、 支持低功耗省電的優點。
Wi-Fi模塊選擇ATK-ESP8266。ATK-ESP8266 是正點原子團隊推出的一款高性能的 UART-WiFi(串口-無線)模塊,ATK-ESP8266 板載了正點原子團隊自主開發的 ATK-ESP-01 模塊,該模塊通過FCC、CE認證,可直接用于產品出口歐美地區,ATK-ESP8266模塊支持3種工作模式,分別是STA模式、AP模式以及STA+AP模式。該模塊可以通過AT指令對模塊的功能進行修改,響應成功后會返回OK。該模塊的頻率范圍為2.402~2.480Ghz,空中速率是1Mbps,工作電壓為2V到3V,通過密碼連接配對、數據加密[4]。
除此之外,ATK-ESP8266的開發資料較為全面,使用廣泛,有利于學習和使用。
BLE模塊選用ATK-BLE01,支持一對多廣播、iBeacon功能、微信搖一搖周邊定位,支持無線喚醒和串口喚醒,支持2.0~3.6V直流電壓供電范圍,模塊集郵票孔和排針焊接孔, 排針焊接孔方便用戶測試,支持模塊發射功率設置,范圍:-14dBm到+8dBm,支持多種天線形式:板載天線、外置 IPEX 天線座、外置天線,支持AT指令配置參數,支持本地固件升級[5]。
軟件設計分為兩大部分,第一部分是主流通信方式設備初始化,設備連接以及數據發送等方法的二次開發。第二部分是人際交互與串口的設計。
第一部分:Wi-Fi、BLE和LORA通信方式都有自己的使用程序,包括設備初始化、發送指令、發送數據、獲得IP和恢復出廠設置等。在這一部分需要繼承3種通信方式的使用程序形成常用通信方式固件庫,通過調用固件庫中的接口達到快速、方便連接通信模塊目的。
第二部分:在上一部分中介紹了相關通信方式的模塊,為了增加通用性,本系統通過LVGL設計串口界面,利用串口界面設置串口參數和通信參數,將參數通過串口傳送給外接通信方式,可以為簡單的通信方式進行初始化[6]。
系統運行時先進行初始化,包括ZIGBEE、BLE、WIFI以及LORA設備的初始化,初始化完成后根據用戶選擇通信方式進行檢測,在選擇BLE時,系統進入下一步,根據系統提示,用戶選擇是否使用串口檢測,使用串口檢測時,系統要進行串口初始化程序,然后在串口檢測界面進行數據輸入,用戶輸入完成后,系統根據用戶設置的數據進行設備檢測。若是不選擇串口檢測,系統會進入BLE設置界面,在BLE設置界面設置藍牙的相關參數,之后開始掃描藍牙,進行藍牙配對,藍牙配對成功后,進行數據傳輸,檢測是否能夠進行通信,若是能夠進行通訊則說明BLE設備正常[7]。
Wi-Fi、LORA與上述模塊操作基本類似,Zig Bee模塊與上述不同,現下使用的Zig Bee模塊是協調器與終端的組合,終端采集數據,將數據發送給協調器,中控芯片通過協調器得到終端發送的數據,所以在檢測Zig Bee模塊時,無法使用模塊搜索的方式,只能通過串口進行檢測,雖然Zig Bee協調器中封裝了協議,但是與中控芯片的通信是通過串口透明傳輸進行的,所以只需要設置串口參數,連接協調器即可,如果能夠檢測到數據則說明模塊正常,檢測不到數據則說明設備損壞。
如圖1所示,Zig Bee、BLE、Wi-Fi以及LORA模塊是同時連接在儀器上面的,所以在開發時要注意串口的使用。以上四種通信方式都是通過串口與單片機相連接,F1系列芯片串口數量存在不足的情況,本系統為拓展串口數量,通過軟件模擬的方式,將普通的IO口模擬成為串口,通過模擬的串口實現多種通信方式的連接[8]。

圖1 檢測流程圖
為了更好地進行人機交互,本系統使用LVGL作為GUI來構建人機交互界面。
littleVGL是剛開始流行的一個小型開源嵌入式GUI庫,具有界面精美,消耗資源小,可移植度高,響應式布局等特點,全庫采用純C語言開發,而且 littleVGL 庫的更新速度非常快,隨著 littleVGL 的認知度越來越大,官方資料也逐漸豐富起來。LVGL具有非常豐富的內置控件,像buttons、charts、lists、sliders、images等,支持多個和多種顯示設備,例如同步顯示在多個彩色屏或單色屏上,為加速GUI設計,提供教程、案例和主題,支持響應式布局,可以縮小到最小內存(64 kB Flash,16 kB RAM),支持PC模擬器,硬件獨立于任何微控制器或顯示器。
LVGL的使用條件為16、32或64位的單片機(微控制器)或處理器,微處理器的主頻最好高于16MHz,Flash/ROM:如果只用little VGL核心組件的話,則至少需要64kB的容量,如果想完整使用的話,最好保證 180kB 以上的容量[9]。
由于電路板通信方式不能通過簡單的高低電平實現檢測,所以只能通過對芯片編程實現通信功能來檢測通信模塊,本文利用STM32芯片對現有通信方式進行二次開發,以此應對主流通信方式的檢測。除此之外,本系統還可以通過串口發送數據來實現通信模塊的初始化,增加了系統的通用性。