李 甦,顧永剛,翟 超
(中國科學技術大學工程科學學院,安徽 合肥230027)
在目前的LAMOST[1]項目中,采用飛思卡爾USB-HCS08-MULTILINK燒寫器,通過硬件連接來完成對目標板軟件升級,該過程涉及到離地焦面上驅動單元的拆卸與安裝,十分不便。而無線燒寫系統利用ZigBee無線通訊方式,只需要待升級的目標板電源接通即可實現內部的軟件升級,大大提升了系統升級效率。
采用飛思卡爾燒寫器來完成目標板軟件更新的實質過程,是燒寫器作為一個BDM(background debug mode)調試器通過硬件連接與目標板的BDM模塊通信,完成目標板片內的Flash擦除與寫入[2],其連接如圖1所示。

圖1 BDM調試器的連接
如果能夠事先在目標板中下載監控程序,則設計一塊監控板作為PC端與目標板的通信中間媒介:一方面,從PC上位機端接收待更新的程序文本內容;另一方面,將該待更新的程序文本內容通過ZigBee無線網絡發送給目標板。在目標板能夠準確接收待更新程序文本的基礎上,通過片上的監控程序來完成目標板Flash的擦除與寫入,就可以實現在與目標板無硬件連接條件下的程序更新。其連接如圖2所示。

圖2 基于ZigBee無線下載的連接
硬件系統的設計主要是監控板的設計。為了實現與目標板的ZigBee通訊,監控板的主芯片采用內嵌MC13192無線收發器的MC13213單片機,同時搭配相應的阻抗匹配電路和天線電路。而為了實現與PC端的串口數據傳輸,選用串口芯片MAX3318作為RS232串口發送、接收數據的芯片[3]。監控板的系統組成如圖3所示。

圖3 監控板的系統組成
1.2.1 阻抗匹配電路
芯片無線收發端輸出阻抗為200Ω,天線的阻抗為50Ω,需要采用阻抗匹配電路。阻抗匹配在無線電技術中很常見,它反映了輸入電路和輸出電路之間的功率傳輸關系。當電路實現阻抗匹配時,就可以獲得最大的功率傳輸,減小功率向信號源反射。阻抗匹配的電路如圖4所示。

圖4 阻抗匹配的原理
1.2.2 串口芯片電路
串口電路的原理如圖5所示。

圖5 MAX3318串口電路原理
串口采用標準DB-9接口,選用的MAX3318工作電壓為3.3V,傳輸速率可達460Kb/s,滿足監控板與PC端的數據傳輸需要。并且MAX3318芯片所需外圍設備少,方便監控板的小尺寸設計。由于供電電源的電壓為5V,而MC13213和MAX3318芯片的控制電壓均為3.3V,故監控板選用Spx3819線性電源芯片作為電壓轉換芯片。
1.2.3 目標板硬件
目標板應用在LAMOST光纖定位系統中,其主要功能是接收無線指令信號驅動步進電機運行。主芯片與監控板相同,為嵌入無線模塊MC13192的8位單片機芯片 MC13213[4]。由于監控板和目標板均采用MC13192作為無線收發模塊,可以完成ZigBee星形無線網的組建,物理層的數據傳輸速度達到250Kb/s[5],能夠滿足監控板與目標板間的數據傳輸要求。
PC端與監控板的串口通訊,采用電腦自帶的通訊工具超級終端作為上位機軟件。待更新的程序內容,采用飛思卡爾官方推薦的S格式文件作為標準格式。S格式文件的獲取是通過在CodeWarrior上用C語言編寫完成源代碼編譯后,自動生成并保存的。無線燒寫的過程可以分為4個流程:PC端向監控板發送S文件;監控板向目標板發送S文件;監控板向目標板發送更新指令;目標板執行更新指令。由于目標板的ID是從固定地址讀取的,使得不同ID編號的目標板所需更新的S文件是相同的,這樣同一次對多個不同目標板的軟件更新過程,只需要監控板從PC機下載S文件1次,節省了下載時間。軟件設計的主要內容是目標板的監控程序設計、監控板的軟件設計。
1.3.1 監控板軟件設計
監控板主要接收來自上位機PC端的指令,并根據相應的指令執行相應的流程。首先,在接收到上位機自定義碼“M”時,開始接收上位機通過超級終端發送過來的S文件,并在接收完成執行格式檢測函數[6]。在格式錯誤時,可以將錯誤格式出現的位置返回給上位機,以供查找S文件中的錯誤代碼段,在格式正確時,同樣會向上位機返回一個格式正確代碼。其次,在接收到上位機自定義碼“L”時,開始向對應的目標板發送由S文件分割而成的分組數據,分組數據是將S文件以每64個字節為1個分組數據,并打包附加上分組編號發送給目標板的,這樣目標板可以在接收到分組數據時,通過檢測分組編號以保證接收到的分組數據的完整性和有序性。最后,在接收到上位機自定義碼“N”時,向對應編號的目標板發送更新指令,一般情況下,此時目標板已經接收了完整的S文件,可以執行Flash更新函數。如果目標板未能檢測到S文件,則會向對應編號的目標板重新發送S文件。監控板的程序流程如圖6所示。

圖6 監控板的程序流程
1.3.2 目標板軟件設計
目標板中的軟件是一段監控程序,在正常條件下完成驅動步進電機運轉的工作,當收到來自監控板的 OTAP(over-the-air-program)指令后,則進入OTAP模式。目標板的軟件設計流程如圖7所示。對接收到的OTAP指令進行解析,如果是握手信號,則返回一個帶自身ID編號的握手確認信號;如果是分組數據信號,則對分組數據的編號進行檢測,編號正確的條件下接收,接收完成后,查詢是否為最后一組分組數據編號,以檢測來自監控板的S文件是否全部發送;如果接收的信號是更新指令,則檢測目標板Flash中的S文件是否接收完整,在S文件被完整接收的條件下執行Flash更新函數。

圖7 目標板的程序流程
在實際運行過程中,監控板從上位機接收S文件成功率高達95%,在接收出錯時也能及時向上位機反饋錯誤代碼。監控板向目標板發送S文件成功率達到90%以上,同時實驗發現太強的WiFi信號會對ZigBee的傳輸產生一定的干擾。而在目標板成功接收S文件的條件下,監控板向目標板發送更新指令和目標板執行更新指令的成功率幾乎為100%。同時,更新Flash后的目標板通過實驗檢測并與S文件的源代碼進行對比,確認無線燒寫系統Flash更新與利用燒寫器效果一致,實現了通過ZigBee組網在無硬件連接下準確更新目標板Flash的預期目標。
通過ZigBee組網無線更新目標板Flash,可以省去利用燒寫器更新程序時所需的拆卸與安裝單元的煩瑣過程,大大減少了系統升級時所需的工作量,同時提升了現場調試工作的效率。無線燒寫系統所用到的監控板攜帶方便,方便移動,同時該監控板不僅限于LAMOST中目標板的程序更新,只要待更新目標板中采用的是MC1319X系列的無線收發器,在首次裝載監控程序后,都可以通過監控板實現無線燒寫。
[1] 劉志剛,江暉,謝志林.LAMOST光纖定位單元參數研究[J].光學技術,2010(3):239-243.
[2] 邵貝貝,龔光華.單片機認識與實踐[M].北京:北京航空航天大學出版社,2006.
[3] 孫曉云.接口與通信技術原理與應用[M].北京:中國電力出版社,2007.
[4] Zhai C,Xue L,Wang H.Wireless control study of LAMOST fiber positioning based on ZigBee[C]//Proceedings of the SPIE,2008.
[5] 呂治安.ZigBee網絡原理與應用開發[M].北京:北京航空航天大學出版社,2008.
[6] 仲進安.用于現場調試的無線多功能燒寫器設計[J].自動化儀表,2012,33(6):83-86.