采用藍(lán)牙技術(shù)的數(shù)據(jù)記錄儀設(shè)計(jì)
過(guò)去五年藍(lán)牙的增長(zhǎng)是有目共睹的。然而,在大多數(shù)消費(fèi)者的印象中,藍(lán)牙仍然是連接移動(dòng)電話(huà)與耳機(jī)的無(wú)線(xiàn)通信媒介。盡管情況確實(shí)基本如此,但藍(lán)牙正在工業(yè)數(shù)據(jù)記錄等通信領(lǐng)域迅速獲得普及。
本文引用地址:http://butianyuan.cn/article/194218.htm本文將要討論的就是這種應(yīng)用,并將介紹藍(lán)牙數(shù)據(jù)記錄儀(data logger)的詳細(xì)設(shè)計(jì)。該藍(lán)牙數(shù)據(jù)記錄儀從奧地利微電子公司AS1530 12位模數(shù)轉(zhuǎn)換器(ADC)獲得數(shù)據(jù),然后通過(guò)微處理器和藍(lán)牙鏈路將數(shù)據(jù)傳給等待收集數(shù)據(jù)并將數(shù)據(jù)存放于電子表格中的PC機(jī)。工業(yè)過(guò)程控制的發(fā)展趨勢(shì)是通過(guò)將并行數(shù)據(jù)傳輸替換為串行“Profibus”數(shù)據(jù)而減少通信線(xiàn)對(duì),該設(shè)計(jì)完全順應(yīng)這種趨勢(shì),并且取消了通信連線(xiàn)。
實(shí)現(xiàn)架構(gòu)
數(shù)據(jù)記錄儀電路內(nèi)有一個(gè)連接到PIC微控制器的AS1530 ADC,利用RS232線(xiàn)纜連接到BlueGiga WT12藍(lán)牙模塊進(jìn)行通信。該模塊通過(guò)藍(lán)牙鏈接將數(shù)據(jù)發(fā)送到第二個(gè)完全相同的BlueGiga WT12模塊,第二個(gè)WT12模塊再通過(guò)RS232線(xiàn)纜連接到PC機(jī)。PC機(jī)上運(yùn)行著用Visual Basic Version 6編寫(xiě)的一個(gè)Windows程序,該程序?qū)⒔邮盏降臄?shù)據(jù)載入Excel電子表格供分析和制圖。
數(shù)據(jù)記錄儀由5V臺(tái)式電源供電。為了確保微控制器能安全工作,記錄儀采用了一款功耗非常低的監(jiān)視器件AS1904進(jìn)行電源監(jiān)控,該器件消耗的電流一般為150nA。數(shù)據(jù)記錄儀電路消耗的電流約為16mA,BlueGiga模塊的平均消耗電流為44.7mA。因此,如果整個(gè)電路都用線(xiàn)性穩(wěn)壓器供電的話(huà),150mA的低壓差線(xiàn)性穩(wěn)壓器AS13985就可以勝任。
模擬前端
模擬前端由12位逐次逼近寄存器(SAR)ADC AS1230組成。如果輸入信號(hào)小于ADC的供電電壓(本例為5V),并且具有較低的源阻抗,那么它就可以被直接送入ADC的輸入端。
ADC的輸入電路可以被建模為一個(gè)簡(jiǎn)單的RC電路,其中R代表信號(hào)的源阻抗,C代表ADC的采樣電容。充電中的RC電路可以用下列等式表示:
其中,Vmax是充電電壓、V是電容兩端的電壓、采樣電容為18pF、采樣時(shí)間t等于390ns。ADC輸入端必須處理的最壞電壓變化是在一個(gè)輸入通道被設(shè)為0V、相鄰?fù)ǖ辣辉O(shè)為2.5V的時(shí)候。此時(shí)輸入電容必須在390ns內(nèi)充電到2.5V,并滿(mǎn)足1/2 LSB精度要求。
由于
因此
那么
據(jù)此可以推算出最小的源阻抗R=2.4kΩ。這里,MUX的輸入阻抗是800Ω,因此信號(hào)的源阻抗必須小于1.6kΩ。如果待數(shù)字化信號(hào)的源阻抗太高,可以用運(yùn)放進(jìn)行放大和/或緩沖。
PIC16F627微控制器采用SPI接口從AS1530存取數(shù)據(jù),SPI接口由片選(CSN)、串行時(shí)鐘(SCLK)、數(shù)據(jù)輸入(DIN)和數(shù)據(jù)輸出(DOUT)組成。CSN線(xiàn)對(duì)數(shù)據(jù)進(jìn)行組幀,數(shù)據(jù)在SCLK線(xiàn)的上升沿寫(xiě)入AS1530或讀出來(lái)。數(shù)據(jù)流由8個(gè)用于選擇輸入通道、輸入范圍和電源模式的控制位和緊接其后的16位輸出數(shù)據(jù)組成。一旦轉(zhuǎn)換完成,ADC就進(jìn)入編好的電源模式(電源完全關(guān)閉、省電或正常工作)。
為了獲得理想的精度,必須仔細(xì)設(shè)計(jì)電路板版圖,并對(duì)芯片的電源引腳和參考引腳進(jìn)行去耦處理。模擬和數(shù)字電源必須分開(kāi)來(lái),盡管這兩個(gè)電源都是從同一個(gè)電源產(chǎn)生的??梢詮闹麟娫床純筛呔€(xiàn)實(shí)現(xiàn),一根寬線(xiàn)到模擬引腳(VDD1和VDD3),另一根線(xiàn)到數(shù)字電源引腳(VDD2)。數(shù)字電源消耗的電流將產(chǎn)生一個(gè)調(diào)制電壓到數(shù)字電源線(xiàn)上,如果該電源同時(shí)連到芯片的模擬電源引腳,這種電壓調(diào)制將破壞ADC的LSB。提供獨(dú)立的供電線(xiàn)路可以解決這個(gè)問(wèn)題。
AS1530的地與模擬和數(shù)字電源一樣重要。從GND引腳到主板電源地引一根寬線(xiàn)可以為返回電流提供良好的低阻抗路徑,要想獲得最佳性能這一措施非常重要。
去耦電容應(yīng)放置在靠近芯片的模擬和數(shù)字電源引腳的位置,另一端要靠近AS1530的GND引腳。這樣可以確保芯片電源引腳上呈現(xiàn)的交流電壓保持為零。10uF的鉭電容并聯(lián)100nF的陶瓷電容可以最大程度地衰減電源線(xiàn)上出現(xiàn)的任何噪聲,同時(shí)為AS1530產(chǎn)生的任何浪涌電流提供低阻抗路徑。
該設(shè)計(jì)采用了AS1530的內(nèi)部參考電壓。如果要用外部參考電壓,需要在靠近REF引腳的位置放置一個(gè)4.7uF低阻抗電容進(jìn)行去耦。因?yàn)樗苯舆B到R-2R梯形網(wǎng)絡(luò),因此SAR ADC參考電壓引腳的輸入阻抗會(huì)隨數(shù)字碼流而變化。
微控制器與Windows程序
1. 數(shù)據(jù)記錄儀端
在數(shù)據(jù)記錄儀側(cè),微控制器用的是PIC16F627A,代碼用C語(yǔ)言編寫(xiě),編譯器是Hi Tech C編譯器。微控制器的內(nèi)部UART被設(shè)置在115.2kbps的波特率,以匹配藍(lán)牙模塊默認(rèn)的波特率。數(shù)據(jù)通過(guò)工業(yè)標(biāo)準(zhǔn)(2Tx/2Rx)電平轉(zhuǎn)換器轉(zhuǎn)換后在RS232鏈路上傳送。
2. RS232通信原理
所有到藍(lán)牙模塊的通信都在RS232接口上實(shí)現(xiàn)。就像生活中遇到的許多事那樣,看似簡(jiǎn)單做時(shí)難,RS232也不例外。在推薦標(biāo)準(zhǔn)RS232規(guī)范制定的時(shí)候,計(jì)算機(jī)被稱(chēng)為終端,有時(shí)它們需要連接到像調(diào)制解調(diào)器這樣的通信設(shè)備。因此共有兩類(lèi)設(shè)備可用RS232標(biāo)準(zhǔn)進(jìn)行相互連接,它們分別是數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE),通常計(jì)算機(jī)(或終端)被配置為DTE,大多數(shù)與它們相連的設(shè)備被配置為DCE(如調(diào)制解調(diào)器)。它們絕大部分用標(biāo)準(zhǔn)的9線(xiàn)RS232電纜連接,電纜一頭的每個(gè)腳與另一頭的相應(yīng)腳連接,電纜內(nèi)沒(méi)有交叉線(xiàn)。
DTE在引腳3上發(fā)送數(shù)據(jù),在引腳2上接收數(shù)據(jù)。同樣在另外一端,DCE在引腳3上接收數(shù)據(jù),在引腳2上發(fā)送數(shù)據(jù)。在90%的RS232應(yīng)用中還會(huì)用到其它兩個(gè)信號(hào),即RTS(準(zhǔn)備好發(fā)送)和CTS(清除發(fā)送)。電纜兩端的設(shè)備都有RTS和CTS信號(hào),一頭的RTS直接連到另一頭的CTS,反之亦然。兩端的RTS都是輸出信號(hào),CTS都是輸入信號(hào)。
在任何數(shù)據(jù)發(fā)送前,兩端設(shè)備都要設(shè)置它們的RTS線(xiàn)(因?yàn)樗鼈兌寄茈S時(shí)發(fā)送和接收數(shù)據(jù))。如果發(fā)送器使RTS有效,接收器的CTS線(xiàn)也隨即有效,因?yàn)樗鼈兪侵苯酉噙B的。當(dāng)發(fā)送設(shè)備開(kāi)始發(fā)送數(shù)據(jù)時(shí),它再使RTS線(xiàn)失效(隨即接收器的CTS失效)。使CTS失效就告訴接收器它沒(méi)有清除發(fā)送數(shù)據(jù),這會(huì)使接收器延遲發(fā)送任何信息。如果發(fā)送器發(fā)送信息太多(和接收器過(guò)載),接收器可隨時(shí)使RTS線(xiàn)失效(同時(shí)使發(fā)送器的CTS線(xiàn)失效),從而指示發(fā)送器停止發(fā)送數(shù)據(jù)。
藍(lán)牙模塊被配置為DCE,因此在AS1530端的微控制器被配置為DTE,這樣它就在引腳3上發(fā)送數(shù)據(jù),在引腳2上接收數(shù)據(jù)。它還使用RTS/CTS握手,在9針連接器的引腳7上發(fā)送RTS,在引腳8上接收CTS。需要注意的是,如果微控制器準(zhǔn)備連到PC機(jī)上的HyperTerminal(用于測(cè)試),Tx和Rx線(xiàn)就需要交換,RTS和CTS線(xiàn)也要交換,相當(dāng)于將微控制器從DTE改為DCE。
標(biāo)準(zhǔn)的RS232電平轉(zhuǎn)換器用于連接微控制器和RS232數(shù)據(jù)線(xiàn)。應(yīng)該注意的是,在發(fā)送到藍(lán)牙模塊的每個(gè)命令后面都需要跟一個(gè)回車(chē)鍵。在用鍵盤(pán)輸入時(shí)這個(gè)簡(jiǎn)單的操作經(jīng)常被疏忽,如果回車(chē)鍵不發(fā)送的話(huà),設(shè)計(jì)師可能要花數(shù)小時(shí)的冤枉時(shí)間去分析模塊為何不能正常工作。
藍(lán)牙模塊可以通過(guò)編程賦于一個(gè)“好記的”名字,從而允許其它藍(lán)牙設(shè)備方便地通過(guò)12位16進(jìn)制地址以外的符號(hào)進(jìn)行識(shí)別。當(dāng)數(shù)據(jù)記錄儀上電時(shí),16F627A對(duì)數(shù)據(jù)記錄儀端的藍(lán)牙模塊賦于一個(gè)名字“AMS_ADC”。
3. PC端
Windows程序采用Visual Basic Version 6進(jìn)行編寫(xiě)。該程序復(fù)用了微軟的超級(jí)終端(HyperTerminal),可以搜索、連接和斷開(kāi)與數(shù)據(jù)記錄儀的鏈接。Windows屏幕如圖1所示。
圖1中的文本窗口顯示了藍(lán)牙模塊復(fù)位后送出的消息。左邊是與藍(lán)牙模塊通信所需的控制區(qū)。
圖1:藍(lán)牙數(shù)據(jù)記錄儀截屏圖。
在復(fù)位后,用戶(hù)點(diǎn)擊按鈕就可以通知藍(lán)牙模塊發(fā)送搜尋所有本地藍(lán)牙設(shè)備的查詢(xún)命令。圖2顯示了處理狀態(tài)。
圖2:發(fā)送查找本地藍(lán)牙設(shè)備處理過(guò)程。
點(diǎn)擊按鈕會(huì)向藍(lán)牙模塊寫(xiě)入文本“INQUIRY 10 NAME”,告訴它在定時(shí)時(shí)間結(jié)束以前等待10秒,并查詢(xún)所有本地藍(lán)牙設(shè)備的名字。
然后藍(lán)牙模塊反饋找到了多少臺(tái)設(shè)備以及它們的12位16進(jìn)制地址和名字。從圖中可以看到設(shè)備“AMS_ADC”的地址是00:07:80:80:c2:11。用戶(hù)可以選中這個(gè)地址然后拷貝到“Address:”窗口。接著點(diǎn)擊按鈕,Windows程序向這個(gè)地址發(fā)送“CALL”命令,如下行所示:
CALL 00:07:80:80:c2:11 1 RFCOMM。
藍(lán)牙設(shè)備發(fā)回一個(gè)CALL 0語(yǔ)句,告訴用戶(hù)CALL過(guò)程已經(jīng)開(kāi)始。一旦建立起與遠(yuǎn)端記錄儀的通信,藍(lán)牙設(shè)備會(huì)回送一條“CONNECT”語(yǔ)句。一旦連接建立,隨后所有的文本都由數(shù)據(jù)記錄儀而非藍(lán)牙設(shè)備產(chǎn)生。數(shù)據(jù)記錄儀通過(guò)發(fā)送文本“LOGGER CONNECTED”表明與AS1530的通信已經(jīng)建立。Windows程序同時(shí)會(huì)打開(kāi)一個(gè)名為C:AMS_ADC.xls的文件,并將接收到的數(shù)據(jù)存于其中。
圖3:數(shù)據(jù)記錄儀端的電路圖。
用戶(hù)再點(diǎn)擊按鈕清除屏幕,將程序從接收文本狀態(tài)切換到接收數(shù)據(jù)狀態(tài)。隨后所有收到的數(shù)據(jù)都被保存到C:AMS_ADC.xls文件中。
Windows程序也允許用戶(hù)輸入自己的文字信息來(lái)覆蓋命令按鈕,點(diǎn)擊按鈕將清除文字窗口。在文本窗口輸入文字然后點(diǎn)擊按鈕就可以將文本窗口上的所有文字下載到藍(lán)牙模塊中。
點(diǎn)擊按鈕會(huì)發(fā)送命令“+++”給藍(lán)牙模塊,告訴它終止鏈接。藍(lán)牙模塊隨即斷開(kāi)鏈路,返回消息告訴用戶(hù)鏈路已經(jīng)斷開(kāi)。圖3是數(shù)據(jù)記錄儀端的電路圖。PC端只是一個(gè)通過(guò)RS232電纜與PC相連的BlueGiga WT12評(píng)估套件。
通過(guò)改寫(xiě)Windows軟件可以很容易擴(kuò)展系統(tǒng),使用戶(hù)查詢(xún)多個(gè)數(shù)據(jù)記錄儀。數(shù)據(jù)記錄儀中的軟件經(jīng)過(guò)進(jìn)一步完善后也可以更好地處理來(lái)自主機(jī)的命令,從而使PC不僅能設(shè)置好記的名字,也能讓用戶(hù)輪詢(xún)和/或復(fù)位系統(tǒng)。
電度表相關(guān)文章:電度表原理
評(píng)論