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