王 瓊,周國平,封維忠,司飛飛
(南京林業(yè)大學信息科學技術(shù)學院,江蘇南京 210037)
目前,隨著計算機的廣泛應(yīng)用,微控制系統(tǒng)和網(wǎng)絡(luò)通信在工業(yè)控制中普遍被采用。由于串口通信所用的傳輸線較少,適合遠距離傳輸,因而它是一種在計算機與外部設(shè)備之間最普遍的數(shù)據(jù)通信方式?,F(xiàn)代化集中管理需要對現(xiàn)場數(shù)據(jù)進行管理,同時又要求對現(xiàn)場裝置進行實時控制,但單片機的計算能力有限,難以進行復雜數(shù)據(jù)處理,因此在功能復雜的控制系統(tǒng)中,通常以PC機為上位機,微控制器為下位機,由微控制器完成數(shù)據(jù)的采集及對裝置的控制,而由上位機完成各種復雜的數(shù)據(jù)處理及對單片機的控制。上下位機之間必須實現(xiàn)數(shù)據(jù)通信,才可以實現(xiàn)上述功能,因而目前上下位機通信技術(shù)越來越得到重視,此項技術(shù)也得到了快速發(fā)展。因此進行單片機與PC機接口的研究具有重要的意義。
MSP430系列單片機是由TI公司生產(chǎn)的16位的單片機,具有高集成度、超低功耗、強大的處理能力和豐富的外圍模塊的特點[1]。MSP430F169單片機工作電壓為1.8~3.6 V,具有獨特的片外雙時鐘系統(tǒng)設(shè)計;擁有豐富的中斷源可以任意嵌套;集成了多通道12位的A/D轉(zhuǎn)換、片內(nèi)精密比較器、串行通信接口(USART)、硬件乘法器、片內(nèi)數(shù)控振蕩器(DCO)、DMA控制器;具有JTAG接口,可串行在線編程,無需外部編程電壓,可迅速完成程序的在線調(diào)試和及時修改,大大提高了效率。當系統(tǒng)處于省電模式時,喚醒時間小于6 μs,可滿足實時性要求高的場合[2]。
FT245BM芯片是FTDI公司生產(chǎn)的一種USB接口芯片,主要功能是進行USB和并行I/O口之間的協(xié)議轉(zhuǎn)換。芯片一方面可從主機通過USB串行總線接收數(shù)據(jù),并將其轉(zhuǎn)換為并行I/O口的數(shù)據(jù)流格式發(fā)送給外設(shè),另一方面外設(shè)可通過并行I/O口將數(shù)據(jù)轉(zhuǎn)換為USB串行數(shù)據(jù)格式傳回主機[3]。中間的轉(zhuǎn)換工作全部由芯片自動完成,開發(fā)者無需考慮固件設(shè)計。硬件連接示意圖如圖1所示。
圖1 硬件連接示意圖
界面窗口采用Visual Basic(簡稱VB)設(shè)計。VB是由微軟公司推出的一套完整的軟件開發(fā)工具,用于開發(fā)Windows環(huán)境下的應(yīng)用程序,是一種可視化、真正面向?qū)ο蟆⒉捎檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計語言和工具的完美集成。它編程簡單、方便、功能強大,具有與其它語言及環(huán)境的良好接口,在程序界面設(shè)計、多媒體開發(fā)方面更是獨具優(yōu)勢[4]。程序流程圖如圖2所示。
系統(tǒng)分為上位機、FT245BM芯片、單片機、外部設(shè)備四個部分。單片機控制外部設(shè)備執(zhí)行相應(yīng)命令,F(xiàn)T245BM芯片承擔單片機與主機之間數(shù)據(jù)的格式轉(zhuǎn)換,主機界面主要負責數(shù)據(jù)發(fā)送、接收和顯示。通信模式框圖如圖3所示。
圖2 界面設(shè)計流程圖
圖3 通信模式框圖
通過界面窗口發(fā)送命令,命令經(jīng)由FT245BM芯片為單片機接收,單片機根據(jù)命令控制外設(shè)工作,并將所得結(jié)果傳送回界面窗口顯示。本例中外設(shè)采用溫度傳感器DS18B20進行溫度采集并存儲數(shù)據(jù)。
DS18B20是DALLAS公司推出的一線式數(shù)字溫度傳感器,具有超小的體積,超低的硬件開銷,且抗干擾能力強,其測量溫度值能被直接讀出,工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生。根據(jù)FT245BM芯片的讀時序[5],作者寫了Read245程序,該程序功能是從FT245芯片中讀一個字節(jié)。
上位機界面發(fā)送數(shù)據(jù),經(jīng)由FT245BM芯片,為單片機接收,從而對外部設(shè)備進行相應(yīng)操作。在此通信模式下,對FT245BM芯片進行的是寫操作,且芯片本身具有寫時序,作者寫的Write245程序即是對FT245BM芯片寫一個字節(jié)。
PC機通過界面發(fā)送命令,下位機數(shù)據(jù)接收采用的是中斷方式,每次中斷只接收一個字節(jié),接收完一個字節(jié),接收中斷置位,在下一個機器周期,CPU查詢此標志為1時,就會產(chǎn)生中斷,從而進入接收中斷程序,且上位機發(fā)送數(shù)據(jù)時以“ST+”為標志符。例如發(fā)送“ST+QD1”,即是要求單片機控制DS18B20采集數(shù)據(jù),即發(fā)送命令圖如圖4所示。
圖4 發(fā)送命令圖
單片機控制DS18B20芯片進行溫度采集,然后經(jīng)由FT245BM芯片將數(shù)據(jù)轉(zhuǎn)換為USB串行數(shù)據(jù)格式,并通過串口顯示在PC機界面上。界面顯示如圖5所示。
圖5 溫度顯示圖
在本次串口通信的研究中,通過與其它串口芯片相比較,F(xiàn)T245BM芯片具有以下優(yōu)點:
(1)FT245BM芯片的USB總線傳輸速度快、占用資源少。USB最大傳輸率可達480 Mbps。其它的串行通信接口,如RS232接口的傳輸速率較低,異步傳輸時,波特率也僅為200 kbps,RS485接口的傳輸速率盡管有所提高,最大也只能到10 Mbps。
(2)USB接口支持熱插拔,這樣FT245芯片可以與主機安全地連接或斷開,真正做到即插即用。
(3)FT245芯片的USB接口可以為設(shè)備供電,耗電比較少的設(shè)備可以通過USB口直接取電。對于耗電量稍大的,可以通過USB接口,接入電感等電路元件,就可以給單片機供電,從而簡化了電路,降低了干擾。
(4)FT245BM芯片配有一個虛擬串行口VCR驅(qū)動程序。該虛擬串口可以像一個標準的物理串口那樣被訪問,用戶可以方便地在這虛擬串口上進行應(yīng)用程序的開發(fā)。
以MSP430單片機為下位機與以PC機為上位機的雙向串口通信,可以將問題分步驟分類別解決,大大提高了工作效率。下位機負責數(shù)據(jù)的采集和存儲,而較為復雜的數(shù)據(jù)處理則可以分離出來給運算控制功能強大的上位機處理,同時通過上位機界面可以顯示處理結(jié)果,也可以控制下位機以及外設(shè)工作。因而通過FT245BM芯片的上下位機通信具有很好的運用前景。
[1]洪利,章?lián)P,李世寶.MSP430單片機原理與應(yīng)用實例詳解[M].北京:北京航空航天大學出版社,2010.
[2]李自珍,郭寶安.MSP430系統(tǒng)應(yīng)用結(jié)構(gòu)設(shè)計與選型[J].單片機與嵌入式系統(tǒng)應(yīng)用,2007(7):11-13.
[3]郭玉輝,王彥瑜,喬衛(wèi)民,等.嵌入式微機在控制系統(tǒng)中的應(yīng)用[J].工業(yè)儀表與自動化裝置,2005(2):17-19.
[4]徐國智.SQL Server數(shù)據(jù)庫開發(fā)實例精粹[J].山西交通科技,1997(8):18-2.
[5]王磊,陸珉,黃春琳,等.基于USB接口的探地雷達數(shù)據(jù)采集系統(tǒng)[J].微處理機,2009(6):103-110.