廖之健,徐治康,趙讀俊
(1.廣東工業(yè)大學(xué)自動(dòng)化學(xué)院,廣東廣州510075;2.廣東省信息工程有限公司,廣東廣州510055)
數(shù)據(jù)采集技術(shù)是獲取信息的主要手段和方法,它是以傳感器技術(shù)、測(cè)試技術(shù)、電子技術(shù)和計(jì)算機(jī)技術(shù)等為基礎(chǔ)的一門綜合應(yīng)用技術(shù)。常用的數(shù)據(jù)采集多采用傳感器,經(jīng)過(guò)一定的數(shù)據(jù)變換與計(jì)算機(jī)通過(guò)串口或USB接口相連,由計(jì)算機(jī)讀取傳感器數(shù)值。隨著相關(guān)基礎(chǔ)技術(shù)的發(fā)展,以嵌入式計(jì)算機(jī)為核心的數(shù)據(jù)采集系統(tǒng)逐步形成,并占據(jù)了測(cè)控領(lǐng)域的統(tǒng)治地位[1]。振動(dòng)量是測(cè)控應(yīng)用中常要采集的一類數(shù)據(jù),如機(jī)器的運(yùn)行狀態(tài)、動(dòng)物的運(yùn)動(dòng)量等,都可以通過(guò)振動(dòng)量反應(yīng)出來(lái)。在實(shí)際應(yīng)用中,有線檢測(cè)往往出現(xiàn)布線困難、擴(kuò)展性移植性差等問(wèn)題,因此,無(wú)線檢測(cè)系統(tǒng)逐漸進(jìn)入了工程人員視野,最值得期待的便是ZigBee無(wú)線網(wǎng)絡(luò)的應(yīng)用。ZigBee技術(shù)主要應(yīng)用在短距離小范圍內(nèi)以及數(shù)據(jù)傳輸速率不高(20~250 kb/s)的各種電子設(shè)備之間,其典型的傳輸數(shù)據(jù)類型有周期性數(shù)據(jù)(如傳感器)、間歇性數(shù)據(jù)(如照明控制)和重復(fù)低反應(yīng)時(shí)間數(shù)據(jù)(如鼠標(biāo))[2]??梢钥闯?,ZigBee無(wú)線網(wǎng)絡(luò)應(yīng)用于數(shù)據(jù)采集具有其先天優(yōu)勢(shì)。
無(wú)線振動(dòng)數(shù)據(jù)采集系統(tǒng)如圖1所示,左邊為無(wú)線傳感器網(wǎng)絡(luò),右邊為數(shù)據(jù)采集終端。采集終端為一臺(tái)嵌入式計(jì)算機(jī),負(fù)責(zé)接收傳感器數(shù)據(jù)并進(jìn)行相關(guān)處理;外接一個(gè)ZigBee網(wǎng)絡(luò)的協(xié)調(diào)器節(jié)點(diǎn),完成對(duì)無(wú)線網(wǎng)絡(luò)的管理。在傳感器網(wǎng)絡(luò)一端,各個(gè)傳感器均接有一個(gè)ZigBee節(jié)點(diǎn),其中大部分功能屬于終端節(jié)點(diǎn),在網(wǎng)絡(luò)需要的情況下,可將部分終端節(jié)點(diǎn)配置為路由節(jié)點(diǎn)使用,以支持不同的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
系統(tǒng)硬件設(shè)計(jì)包括三種模塊:ARM9處理器及其外圍支持電路為一塊完整的工業(yè)控制核心板;ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)的各功能節(jié)點(diǎn)采用獨(dú)立的模塊,模塊上集成了射頻收發(fā)器及控制單片機(jī);傳感器電路需自行設(shè)計(jì),將制作成的電路板加接到ZigBee節(jié)點(diǎn)即可。
為了縮短系統(tǒng)的開(kāi)發(fā)周期,設(shè)計(jì)中采用了成都某公司EM916x工業(yè)控制核心模塊。該核心模塊使用了一片AT91SAM9260的32位CPU,內(nèi)存有32 MB和64 MB可選,板載有32 MB的Flash,用戶可使用其中的一半,并且還集成了標(biāo)準(zhǔn)的MiniSD卡插槽,即插即用,為終端數(shù)據(jù)的存儲(chǔ)提供了便利。在通信接口方面,EM9160配置了一路以太網(wǎng)接口,可用至多6路的標(biāo)準(zhǔn)UART串口,兩路USB主控接口等[3]。
EM916x模塊緊湊的集成設(shè)計(jì),豐富的接口資源大大減少了設(shè)計(jì)數(shù)據(jù)采集終端的工作量,用戶幾乎不用做更多的外圍電路設(shè)計(jì),只需將要使用的接口按要求引出到標(biāo)準(zhǔn)接頭即可。
本設(shè)計(jì)選擇了成都某公司的C51RF系列ZigBee無(wú)線開(kāi)發(fā)系統(tǒng)套件。該套件提供ZigBee開(kāi)發(fā)所需的全套軟硬件,包括ZigBee2006協(xié)議棧,完全滿足IEEE802.15.4標(biāo)準(zhǔn)和ZigBee技術(shù)標(biāo)準(zhǔn)。套件使用無(wú)線單片機(jī)CC2430,是一個(gè)真正的SoC解決方案,它內(nèi)部結(jié)合了一個(gè)高性能2.4 GHz直接序列擴(kuò)頻(DSSS)射頻收發(fā)器核心和一個(gè)工業(yè)級(jí)小巧高效的增強(qiáng)型8051控制器。CC2430具有性能高、功耗低、收發(fā)靈敏度高和抗干擾性強(qiáng)等特點(diǎn),尤其是在休眠模式下,器件的功耗尚不到1 μA,以之構(gòu)建無(wú)線傳感器網(wǎng)絡(luò)能夠在電池供電的情況下大大延長(zhǎng)傳感器的使用時(shí)限[4]。
常用的振動(dòng)傳感器分為壓電/駐極體/電磁型、彈簧型、機(jī)械接觸型等。CLA-3微型傳感器是一種采用新型高靈敏度傳感膜設(shè)計(jì)的全向振動(dòng)傳感器。CLA-3的靈敏度可調(diào),抗干擾性好,輸出為準(zhǔn)數(shù)字信號(hào),對(duì)于信號(hào)的后期處理相對(duì)比較簡(jiǎn)單。使用時(shí)必須采用剛性連接,如使用粘結(jié)膠固定,以減小振源與傳感器之間的衰減[5]。圖2為本設(shè)計(jì)中使用的檢測(cè)電路,經(jīng)過(guò)調(diào)理的振動(dòng)傳感器信號(hào)輸出為方波,對(duì)方波進(jìn)行計(jì)數(shù)即可獲得振動(dòng)數(shù)據(jù)。
集成后得到無(wú)線采集系統(tǒng)的硬件框圖如圖3所示。EM916x核心板與CC2430通過(guò)RS232串口相連,在核心板一端,除DEBUG串口外均可使用,而CC2430自帶兩個(gè)USART口,可使用其中任何一個(gè);CAL-3傳感器與CC2430的連接相對(duì)簡(jiǎn)單,只需將CAL-3應(yīng)用電路的信號(hào)輸出端接入CC2430的一個(gè)數(shù)字I/O口,在程序中以中斷的方式讀取該I/O口的計(jì)數(shù)即可。
ZigBee以獨(dú)立的工作節(jié)點(diǎn)為依托,通過(guò)無(wú)線通信組成星狀、樹(shù)狀或網(wǎng)狀網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)都擁有一個(gè)唯一的64 bit IEEE地址,而其功能并不完全相同。從組網(wǎng)通信上來(lái)說(shuō),半功能設(shè)備RFD(Reduced Function Device)只是其功能的一個(gè)子集;全功能設(shè)備FFD(Full Function Device)則與所控制的子節(jié)點(diǎn)通信、匯集數(shù)據(jù)和發(fā)布控制,或起到通信路由的作用。無(wú)論采用哪種拓?fù)渚W(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)都只能有唯一的協(xié)調(diào)器,它由全功能設(shè)備構(gòu)成,相當(dāng)于一臺(tái)服務(wù)器,負(fù)責(zé)對(duì)整個(gè)網(wǎng)絡(luò)的管理。FFD可作協(xié)調(diào)器、路由器以及終端節(jié)點(diǎn)使用,RFD只能用作終端節(jié)點(diǎn)。
本設(shè)計(jì)中無(wú)線傳感網(wǎng)絡(luò)采用圖3所示的樹(shù)狀拓?fù)浣Y(jié)構(gòu),與EM916x工控板相連的屬于FFD設(shè)備,作為網(wǎng)絡(luò)的協(xié)調(diào)器。而振動(dòng)傳感器端既可以接RFD設(shè)備作為終端節(jié)點(diǎn),也可以接FFD設(shè)備。與FFD設(shè)備相接的傳感器作為終端節(jié)點(diǎn)使用的同時(shí),還具備路由功能,并能接收終端節(jié)點(diǎn)的入網(wǎng)請(qǐng)求,它類似于一臺(tái)有線網(wǎng)絡(luò)的路由器,通過(guò)中繼轉(zhuǎn)發(fā)及路由選擇,可大大擴(kuò)展無(wú)線網(wǎng)絡(luò)的覆蓋范圍,提高通信穩(wěn)定性以及網(wǎng)絡(luò)容量。
EM916x核心板預(yù)裝了Win CE實(shí)時(shí)多任務(wù)操作系統(tǒng),支持包括MFC在內(nèi)的各種典型的Windows應(yīng)用程序框架,可以方便地使用Embedded Visual C++開(kāi)發(fā)各種應(yīng)用程序。CC2430開(kāi)發(fā)套件自帶了完整的ZigBee協(xié)議棧,使用IAR集成開(kāi)發(fā)環(huán)境對(duì)協(xié)議棧工程文件進(jìn)行管理,可以查看并修改整個(gè)協(xié)議棧的任意層源代碼。因此,軟件設(shè)計(jì)分為兩部分:Win CE下的應(yīng)用程序設(shè)計(jì)和ZigBee協(xié)議棧的添加與修改。
應(yīng)用程序駐留在EM916x核心板中,主要功能是負(fù)責(zé)打開(kāi)連接協(xié)調(diào)器的串口,設(shè)置串口通信參數(shù);初始化ZigBee無(wú)線網(wǎng)絡(luò),查詢并返回網(wǎng)絡(luò)狀況,如是否建立成功、各種節(jié)點(diǎn)的狀態(tài)及數(shù)目等;監(jiān)視串口接收協(xié)調(diào)器發(fā)來(lái)的數(shù)據(jù)幀;解碼數(shù)據(jù)幀讀取傳感器數(shù)值,并由EM916x核心板的調(diào)試串口打印出來(lái)。應(yīng)用程序流程如圖4(a)所示。
ZigBee協(xié)議棧完成了無(wú)線網(wǎng)絡(luò)初始化的絕大部分功能,代碼修改應(yīng)謹(jǐn)慎對(duì)待。使用IAR集成開(kāi)發(fā)工具打開(kāi)ZigBee2006協(xié)議棧工程,找到ZMain工程目錄。打開(kāi)后可以看到這是協(xié)議棧的主函數(shù)目錄,包括入口函數(shù)和硬件配置文件,在這里便可以添加自定的應(yīng)用函數(shù)。
無(wú)線網(wǎng)絡(luò)中三種節(jié)點(diǎn)的功能各不相同。協(xié)調(diào)器負(fù)責(zé)初始化無(wú)線網(wǎng)絡(luò),等待子節(jié)點(diǎn)的入網(wǎng),并接收子節(jié)點(diǎn)的數(shù)據(jù)幀,通過(guò)串口發(fā)送到主機(jī),程序流程如圖4(b)所示。路由器與終端節(jié)點(diǎn)添加的應(yīng)用函數(shù)功能相同,首先搜尋ZigBee網(wǎng)絡(luò),并向網(wǎng)絡(luò)中的協(xié)調(diào)器或路由器申請(qǐng)加入網(wǎng)絡(luò);初始化定時(shí)計(jì)數(shù)器,允許中斷,對(duì)振動(dòng)傳感器的輸入方波進(jìn)行計(jì)數(shù),定時(shí)向父節(jié)點(diǎn)(即允許其入網(wǎng)的節(jié)點(diǎn))發(fā)送計(jì)數(shù)值,圖4(c)為路由節(jié)點(diǎn)和終端節(jié)點(diǎn)的程序流程圖。路由器與終端節(jié)點(diǎn)只要在下載前選擇編譯即可。
仿真軟件使用Lab View編寫,仿真界面如圖5所示。左側(cè)用于選擇ZigBee網(wǎng)絡(luò)協(xié)調(diào)器與核心板相連接的串口號(hào)、波特率及控制按鈕;右上部顯示的是終端節(jié)點(diǎn)采集到的振動(dòng)數(shù)值,包括節(jié)點(diǎn)發(fā)送數(shù)值時(shí)間、節(jié)點(diǎn)編號(hào)、當(dāng)前發(fā)送振動(dòng)計(jì)數(shù)值及上一次發(fā)送的計(jì)數(shù)值。右下方為某個(gè)終端節(jié)點(diǎn)在一定時(shí)段內(nèi)振動(dòng)計(jì)數(shù)的波形圖,節(jié)點(diǎn)選擇在左下方的“奶牛編號(hào)”(原項(xiàng)目名稱)。圖5所顯示的是將傳感器套掛在奶牛脖子上實(shí)地采集到的振動(dòng)數(shù)據(jù)。
通過(guò)現(xiàn)場(chǎng)實(shí)驗(yàn)證明,利用ZigBee無(wú)線網(wǎng)絡(luò)構(gòu)建的數(shù)據(jù)采集系統(tǒng)具有非常好的準(zhǔn)確性與實(shí)時(shí)性,而在擁有多個(gè)路由節(jié)點(diǎn)的網(wǎng)絡(luò)中,ZigBee網(wǎng)絡(luò)能夠得到非常大的延伸。通過(guò)實(shí)驗(yàn)也發(fā)現(xiàn)了一個(gè)問(wèn)題:當(dāng)終端節(jié)點(diǎn)與地面的距離太近,大約小于30 cm時(shí),節(jié)點(diǎn)與協(xié)調(diào)器之間的通信可靠性及通信距離大為降低,越接近地面,可靠通信距離就越短。后期采用的解決辦法是增大無(wú)線信號(hào)的發(fā)射功率,此時(shí)通信距離有所改觀,但這并不是一個(gè)好辦法,發(fā)射功率的增大意味著節(jié)點(diǎn)的電池壽命將縮短。
ZigBee是一種新興的短距離、低速率、低功耗無(wú)線網(wǎng)絡(luò)技術(shù),其應(yīng)用領(lǐng)域愈來(lái)愈廣泛,如數(shù)字家庭中的自動(dòng)抄表系統(tǒng)、室內(nèi)無(wú)線定位及動(dòng)物遠(yuǎn)程監(jiān)控等。本文中無(wú)線振動(dòng)數(shù)據(jù)采集系統(tǒng)的傳感器如果設(shè)計(jì)成諸如自動(dòng)抄表器、無(wú)線定位引擎等,便可應(yīng)用于各種不同的場(chǎng)合。
[1]李念強(qiáng),魏長(zhǎng)智,潘建軍,等.數(shù)據(jù)采集技術(shù)與系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2009.
[2]李文仲,段朝玉.ZigBee2006無(wú)線網(wǎng)絡(luò)與無(wú)線定位實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2008.
[3]EM916x工控主板數(shù)據(jù)手冊(cè).http://www.emtronix.com/.
[4]ZigBee無(wú)線片上系統(tǒng)CC2430/CC2431中文使用說(shuō)明手冊(cè).http://www.c51rf.com.
[5]CLA-3全向振動(dòng)傳感器簡(jiǎn)介與應(yīng)用.http://wenku.baidu.com/.
[6]范逸之,廖錦棋.Visual Basic硬件設(shè)計(jì)與開(kāi)發(fā)——數(shù)據(jù)采集卡控制[M].北京:清華大學(xué)出版社,2004.
[7]周林,殷俠.數(shù)據(jù)采集與分析技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005.
[8][美]Edgar H.Callaway,Jr.無(wú)線傳感器網(wǎng)絡(luò):體系結(jié)構(gòu)與協(xié)議[M].王永斌,屈曉旭譯.北京:電子工業(yè)出版社,2007.