李元章, 馬忠梅, 譚毓安, 張全新, 劉 璐
(北京理工大學計算機學院,北京100081)
嵌入式系統自誕生以來就在各行各業中得到了廣泛的應用,但由于系統資源有限,因此開發與調試工作都需要專門的開發工具與開發環境的支持,比如早期的51系統,開發時需要先通過仿真器進行程序與電路仿真,再通過特定的編程器將可執行碼寫入到單片的ROM中,整個調試過程復雜,需要仿真器、編程器等硬件設備的支持。
隨著ICE(In-Circuit Emulator)調試方法的出現,可以使用在線仿真器進行系統調試[1-4],支持片上斷點和單步調試,并且支持可執行碼的下載功能,集合了仿真器和編程器的功能,降低了開發的難度,如常見的JTAG調試方式和BDM背景調試方式等。
針對TI(德州儀器)的無線MCU芯片CC3200設計一種新型的嵌入式實驗開發模式,能夠將其方便地應用于嵌入式系統實驗教學,并能夠將該模式應用在STEM等益智系統的開發中,實驗可分MCU端和手機端,學生可選擇進行。MCU端可配合手機網絡助手只關注MCU傳感器采集、電機控制等;手機端配合MCU板用于采集加速度和溫度,專注APP開發。學生可以兩兩配合完成自主命題的實驗設計[5-9]。
TI的 CC3200微控制器是非常適合物聯網(Internet of Things,IOT)應用的嵌入式無線 MCU[10],物聯網體系架構分感知層、網絡層和應用層,感知層離不開嵌入式系統,而無線MCU是傳感器數據采集的理想器件,該芯片也是業界首款內置WiFi功能的無線MCU。CC3200集成了高性能ARM Cortex-M4內核,網絡通信能力穩定可靠,并擁有完整的安全協議,用戶能使用單芯片方案來完成WiFi網絡系統開發。
CC3200的功能架構如圖1所示。

圖1 CC3200的功能架構圖
其主要性能及資源包括:①基于ARM Cortex-M4的應用微控制器和基于WiFi的 網絡處理器;② SPI/UART/I2C/SD/I2S/Camera等接口;③80 MHz/256 KB RAM/64KB ROM;④支持浮點運算和專用的數字信號處理指令;⑤ 支持無操作系統或嵌入式實時操作系統。
CC3200器件支持基站(Station)、訪問點 AP(Access Point)和WiFi直接模式,集成WiFi功能是它的最大特色。
針對上述功能,設計了CC3200+智能手機的實驗開發模式[11]。CC3200端負責下位機傳感器采集和外設控制,通過無線WiFi進行數據傳送,手機端可以使用手機網絡調試助手與MCU進行網絡調試。
對于功能相對簡單的MCU來說,由于其通常不支持嵌入式操作系統,且接口資源有限,因此在開發和調試過程中,始終需要PC端的支持,需要在PC端安裝編程環境,調試過程中通過USB或串口監控調試信息[12-15],其結構框架如圖2所示。

圖2 傳統的嵌入式實驗開發框架
常規的硬件實驗開發流程如下:① PC端通過USB端口與JTAG仿真器(或USB轉JTAG接口)相連接,再通過JTAG與實驗板相連接,USB端口為開發板供電的同時,實現數據下載的功能,將CCS等開發環境編譯好的可執行碼通過JTAG下載至控制器ROM中,通常支持在線調試等模式。②PC端通過串行通信接口(可由USB端口虛擬串口)與實驗板的串行口相連接,PC端安裝串行通信超級終端程序,監測輸出結果以及發送串行控制命令,進行程序調試。③根據實驗板及其控制的外設運行測試情況,PC端修改程序代碼直到系統與外設正確運行后將最終代碼寫入到下位機,完成系統開發。
在上述開發過程中,PC端是不可缺少的一環,無論軟件設計還是系統調試,都無法離開PC端支持,而系統開發一旦離不開PC,開發過程就會受到很大限制,實驗必須在實驗室環境下完成,且實驗還會受到PC端的性能制約。
針對傳統的嵌入式實驗開發模式的缺陷,設計了一種基于CC3200+WiFi+手機的嵌入式實驗調試模式,該模式利用手機作為上位機端與下位機CC3200控制端進行系統調試。其結構框架如圖3所示。

圖3 基于WiFi的嵌入式系統調試模式
在該模式下,PC端僅需要在系統開發初期介入,程序調試階段則完全脫離PC進行,其基本流程如下:①實驗板單獨供電,PC端通過USB端口與JTAG仿真器(或USB轉JTAG接口)相連接,再通過JTAG與實驗板相連接,實現數據下載的功能,將CCS等開發環境編譯好的可執行碼通過JTAG下載至控制器ROM中,在代碼中加入完整的基于WiFi的網絡調試功能代碼。②實驗板脫離PC端,將基于CC3200的實驗板運行于WiFi的 Station模式(或Access Point模式,由WiFi網絡調試功能設定)。③將移動智能端(手機或者平板等)運行于Access Point模式(或者Station模式,即WiFi熱點模式,與實驗板的模式相對應),安裝并運行網絡調試助手,通過發送命令控制外設運行,接收來自外設的系統狀態參數等進行系統調試。
在基于WiFi嵌入式調試模式下,需要首先初始化WiFi配置,然后進行WiFi連接,其基本流程見圖4。

圖4 CC3200的WiFi配置方法
手機端調試采用網絡調試助手,界面如圖5所示。

圖5 手機端調試助手
由于移動智能設備的普及,學生幾乎人人配備了智能手機,因此,在很大程度上提高了基于無線MCU的嵌入式系統實驗調試的方便性。
上述基于WiFi調試的實驗開發方法雖然能夠脫離PC端進行獨立的調試,但在其開發初期以及最終程序寫入依然需要PC通過其相應的開發與編譯環境如CCS等,進行編譯和寫入操作,故存在一定局限性。
為了能夠以更簡單的方式進行嵌入式實驗,在手機端設計了一個APP應用程序,該APP內置Python解釋器來解析Python代碼,同時提供封裝好的Python功能及動作函數,供用戶編寫圖形化模塊時進行調用,實驗證明該方式能夠應用于STEM益智教育的實驗開發。
下面以某智能小車系統為例,簡要說明基于無線MCU的STEM益智教育實驗開發的基本框架。
智能小車采用CC3200無線MCU為主控制器,驅動步進電動機,控制全向輪轉動。STEM益智教育框架設計實現了控制智能小車的Android上位機程序,實驗開發框架APP端支持包括遙控器方式、繪圖方式、圖形化編程[16]和Python文本編程等。遙控器模塊用按鈕來操控小車前進、后退、左轉和右轉;繪圖模塊直接在手機上繪圖由智能小車在紙上按比例放大繪出;圖形化編程采用圖形編程的方式方便青少年計算機編程入門;文本編程模塊用Python代碼來控制小車完成指定的動作。
其開發與調試的基本流程為:①用戶根據下位機功能需求在手機端通過圖形化方式或文本方式編寫控制程序;②手機內置的Python解釋器對程序進行解釋,生成特定格式的指令流;③ 生成的指令流通過WiFi(Station模式或者AP模式)將命令下載至實驗板;④實驗板ROM中已固化的針對WiFi的命令解釋器對每條指令逐條解釋,生成控制指令控制外設的運行;⑤來自于下位機外部傳感器的數據同樣通過WiFi上傳至手機端進行綜合數據處理。
其功能框圖如圖6所示。

圖6 STEM益智教育實驗開發框架
終端APP能夠實現通過圖形化或文本方式控制下位機的運行,可進行步進電動機的運動距離和運動方式控制,紅外、超聲測距傳感器的數據采集,自動避障、自動行駛等功能的算法實現。
基于無線MCU的STEM益智教育實驗開發框架相比枯燥的代碼編程,能夠培養學生的編程興趣,提高學生的動手能力,讓學生切身體驗到各個學科的魅力,尤其是計算機科學的魅力,并提高學生的綜合能力。圖7是按照上述框架構建的基于Python的文本與圖形化編程的智能繪圖小車及其繪制作品。青少年學習了圖形化編程方法后,可進一步學習Python語言文本編程,過度到真正的程序員,從而具備一定的計算機編程能力。

圖7 智能繪圖小車及其繪制作品
基于無線MCU的STEM益智教育實驗開發框架仍然受到手機的CPU架構限制,幾乎不支持集成開發編譯環境,而且應用程序開發還受到手機端APP所支持的功能限制,無法進行復雜的系統功能設計,目前僅限于簡單的針對STEM的應用程序開發。但隨著智能手機性能的進一步提升以及應用框架的進一步完善,未來以移動智能設備為核心的嵌入式系統開發調試環境將會逐步應用到嵌入式系統的設計開發過程中。