嵌入式WSNs汽車防盜系統(tǒng)
引言
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks)是通信技術(shù)、計算機(jī)技術(shù)、傳感器技術(shù)和網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。無線傳感器網(wǎng)絡(luò)是由大量隨機(jī)分布的、具有實時感知和自組織能力的傳感器節(jié)點(diǎn)組成的,它具有分布式處理帶來的監(jiān)測精度高、容錯性好、覆蓋區(qū)域廣等優(yōu)點(diǎn),在環(huán)境監(jiān)控、消費(fèi)類電子、軍事偵察以及交通管理等很多領(lǐng)域中具有廣闊的應(yīng)用前景,是近期國際上研究的熱點(diǎn)之一。
1.系統(tǒng)方案設(shè)計
無線傳感器網(wǎng)絡(luò)的基本組成單元是具備信息采集和通信功能的嵌入式節(jié)點(diǎn),因此無線傳感器網(wǎng)絡(luò)的設(shè)計也就是節(jié)點(diǎn)的設(shè)計。本文根據(jù)無線傳感器網(wǎng)絡(luò)的功能需求,按照嵌入式系統(tǒng)體裁衣的思想選擇各個功能模塊部件,著重考慮節(jié)點(diǎn)的性價比和可升級性等因素,設(shè)計嵌入式無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的硬件結(jié)構(gòu)。根據(jù)功能需求,將各個獨(dú)立功能模塊化,節(jié)點(diǎn)的硬件體系結(jié)構(gòu)如圖 1所示。
500)this.style.width=500;" border="0" />
本文綜合硬件平臺因素,系統(tǒng)軟件使用嵌入式實時操作系統(tǒng) FreeRTOS。由于簇頭節(jié)點(diǎn)需具備 GPRS數(shù)據(jù)傳輸功能,因而軟件體系中具備 TCP/IP協(xié)議棧也是非常重要的。本文選擇了在著名開源網(wǎng)站 SourceForge上公開發(fā)布的嵌入式實時操作系統(tǒng) FreeRTOS作為系統(tǒng)軟件體系設(shè)計的基礎(chǔ),選擇己經(jīng)移植到 FreeRTOS上的的 uIP作為系統(tǒng) TCP/IP協(xié)議棧。在節(jié)點(diǎn)組網(wǎng)模塊設(shè)計中,本文移植了符合 ZigBee規(guī)范的軟件,從而為節(jié)點(diǎn)的組網(wǎng),路由等應(yīng)用層程序的開發(fā)提供了基礎(chǔ)。如圖 2所示為系統(tǒng)的軟件體系結(jié)構(gòu)。
500)this.style.width=500;" border="0" />
1 無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)硬件設(shè)計
2 1ARM處理器模塊通信電路設(shè)計
采用 GPRS模塊進(jìn)行數(shù)據(jù)傳輸過程中,為便于系統(tǒng)測試,本文采用 AT91SAM7S256提供的一路兩線制串口DBG COM顯示由CPU發(fā)送給 GPRS模塊的數(shù)據(jù),采用剩下的 USARTO顯示由 GPRS模塊發(fā)送給 CPU的數(shù)據(jù),實現(xiàn)對發(fā)送和接收數(shù)據(jù)的監(jiān)測和解析,為系統(tǒng)功能的調(diào)試提供了一種良好的接口。
500)this.style.width=500;" border="0" />
2.2 ARM處理器時鐘電路設(shè)計
AT91 SAM7S系列微控制器系統(tǒng)時鐘由時鐘發(fā)生器提供,其內(nèi)部包括 1個鎖相環(huán) (PLL), 1個主振蕩器,1個 RC振蕩器。時鐘發(fā)生器為系統(tǒng)提供下列時鐘: SLCK慢速時鐘。由 RC振蕩器提供,是電源管理系統(tǒng)內(nèi)唯一恒定時鐘。 MAINCK主振蕩器輸出時鐘。PLLCK分頻器與 PLL輸出。
500)this.style.width=500;" border="0" />
圖 4 時鐘模塊電路原理圖
2.3 MC39i模塊電路設(shè)計
GPRS模塊設(shè)計可劃分為 SIM卡接口電路、啟動復(fù)位電路和控制接口電路三部分。啟動復(fù)位電路設(shè)計,MC39i上電后,將其 IGT引腳拉低至少 100ms,即可以開啟 MC39i;MC39i帶有一個符合 ISO 7816-3 IC卡標(biāo)準(zhǔn)的 SiM卡接口,用戶可以方便的接外部 SIM讀卡器; MC39i通過 ZIF插座提供了符合 ITU-T DCE標(biāo)準(zhǔn)的 RS232接口,通過 RS232接口可以向 MC39i發(fā)送 AT命令和數(shù)據(jù)。該接口工作在 CMOS電平下。MC39i的 RS232接口支持 8位數(shù)據(jù)、無校驗、 1位停止位的數(shù)據(jù)格式,波特率可以設(shè)置為 300bps~115kbps。支持 RTS/CTS硬件握手信號和 XON/XOFF握手信號。
2.4振動傳感器模塊設(shè)計
本文振動信號的檢測采用 ADXL202實現(xiàn),ADXL202是美國模擬器件公司設(shè)計生產(chǎn)的的新型單芯片雙軸加速度傳感器,加速度測量范圍是士 2g;動態(tài)測試帶寬為 0~5kHz,可測量靜態(tài)加速度、振動和傾角。本文采用加速度傳感器用于監(jiān)測較大的振動或移動,達(dá)到防盜的目的。由于振動在微觀上是物體加速度的快速變化,因此本文采用此原理進(jìn)行振動信號的監(jiān)測。將 ADXL202的 X軸和 Y軸加速度輸出引腳與 CPU的定時計數(shù)器相連接,利用 TC捕獲芯片的 PWM信號得到當(dāng)前的加速度,如果連續(xù)監(jiān)測到芯片加速度的急劇變化,則可判定振動的產(chǎn)生,加速度的變化程度對應(yīng)于振動的強(qiáng)弱。設(shè)置與芯片 T2引腳連接的電阻值為
1.25MS2,使得其輸出信號的周期為 l 0ms,從而獲得較好的分辨率,其原理圖如圖 5所示。
500)this.style.width=500;" border="0" />
3.系統(tǒng)軟件設(shè)計
3.1 GPRS模塊軟件設(shè)計
GPRS模塊用于無線傳感器網(wǎng)絡(luò)間的通信,它是節(jié)點(diǎn)的重要組成部分之一。通過 GPRS模塊進(jìn)行數(shù)據(jù)傳輸本質(zhì)上是利用了移動通信網(wǎng)絡(luò)與 Internet網(wǎng)絡(luò)之間的互聯(lián),因而傳輸?shù)臄?shù)據(jù)需要符合 Internet網(wǎng)絡(luò)的 TCP/IP協(xié)議標(biāo)準(zhǔn)。無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)利用 GPRS實現(xiàn)數(shù)據(jù)傳輸?shù)倪^程為:首先利用 ARM處理器控制 MC39i模塊實現(xiàn)與 Internet網(wǎng)絡(luò)的連接,通過 PPP協(xié)議獲得 IP地址;然后將經(jīng)過 TCP/IP以及 PPP協(xié)議封裝的數(shù)據(jù)通過 RS232串口發(fā)送給 MC39i。根據(jù) GPRS撥號上網(wǎng)的通信規(guī)程以及 MC39i模塊的控制說明,本文設(shè)計如圖 6所示系統(tǒng)流程圖完成 GPRS模塊撥號上網(wǎng)以及后續(xù)的數(shù)據(jù)傳輸處理,其中 PPP協(xié)商處理和數(shù)據(jù)的 TCP/IP以及應(yīng)用層的封裝處理是本模塊設(shè)計的重點(diǎn)和難點(diǎn)。
500)this.style.width=500;" border="0" />
3.2 MC39i驅(qū)動程序設(shè)計
MC39i模塊驅(qū)動設(shè)計主要包括 FreeRTOS下 USART驅(qū)動程序設(shè)計,MC39i模塊的初始化和 GPRS網(wǎng)絡(luò)參數(shù)設(shè)置。它在保證 GPRS模塊可用性的前提下,為數(shù)據(jù)的傳輸提供通道,為鏈路層以及上層協(xié)議的實現(xiàn)提供方便的接口。
串口驅(qū)動程序的工作過程為:當(dāng)某一個任務(wù)需要通過串口發(fā)送數(shù)據(jù)時,必須先得到該串口發(fā)送隊列的信號量時才可發(fā)送數(shù)據(jù),發(fā)送結(jié)束后釋放信號量 ;如果無法取得信號量,則掛起該任務(wù)等待信號量有效。驅(qū)動程序中為 USART建立發(fā)送隊列和接收隊列兩個隊列。當(dāng)發(fā)送隊列不為空時,發(fā)送中斷使能,從而將發(fā)送隊列中的數(shù)據(jù)通過串口中斷服務(wù)程序發(fā)送到串口。如果需要發(fā)送數(shù)據(jù),只需調(diào)用 xSerialPutChar函數(shù)向發(fā)送隊列傳送數(shù)據(jù)即可 ;如果需要從串口接收數(shù)據(jù),需調(diào)用 xSerialGetChar函數(shù),等待從隊列接收數(shù)據(jù),串口驅(qū)動程序即可使能 USART接收中斷,進(jìn)行數(shù)據(jù)接收的準(zhǔn)備,串口接收中斷服務(wù)會將接收到的數(shù)據(jù)自動發(fā)送到串口接收隊列中。
建立發(fā)送和接收隊列的代碼如下: xRxedChars=xQueueCreate( uxQueueLength, (portBASE TYPE)sizeof( *pDataPackage)); xCharsForTx=xQueueCreate(uxQueueLength+1, portBASE_TYPE)sizeof(*pDataPackage)); 其中 xQueueCreate為 FreeRTOS操作系統(tǒng)提供的創(chuàng)建隊列的 API接口函數(shù)。第一個參
數(shù)指定了隊列的深度,第二個參數(shù)指定了隊列的寬度。驅(qū)動程序為應(yīng)用程序提供了以下函數(shù)接口:signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime) void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength) void Uartse Printf(char *fmt,...);void IntSendString(char *pt) signed portBASE_TYPExSerialGetChar(xComPortHandlepxPort,signed ortCHAR*pcRxedChar, portTickType xBlockTime)
3.3振動傳感器任務(wù)設(shè)計
本文采用 AT91 SAM7S256處理器的定時計數(shù)器實現(xiàn)對振動傳感器 ADX202輸出 PWM信號的測量。采用加速度傳感器測量振動信號用于監(jiān)測較大的振動或移動,達(dá)到防盜的作用。由于振動是物體加速度的快速變化,本文采用此原理進(jìn)行振動信號的監(jiān)測。驗。最后確定當(dāng)加速度連續(xù)兩次變化超過 0.03 m/s2時,發(fā)出振動警報,這樣可以靈敏的監(jiān)測汽車移動和碰撞等事件,并且排除了由于其他情況導(dǎo)致的信號波動。,以下給出加速度傳感器處理任務(wù)的核心代碼如下:
void vADXLTask( void *pvParameters) { (void)pvParameters;
InitTC1Capture();//初始化 TC1, 2工作模式 InitTC2Capture();
while(1) { xQueueReceive(ADXLCapDataQ, pcBuffer, xBlockTitne) pShkData=AnalysisADXLdataQ; //分析 X, Y軸的所得的計數(shù)器捕獲數(shù)值 AssertX=pdFALSE;//狀態(tài)變量復(fù)位 AssertY=pdFALSE; xQueueSend(ShakeDataQ, pShkData, xBIockTime)://將振動信號發(fā)送到隊列中 vTaskDelay(WAIT*TICK_PER_SEC);//任務(wù)延時 portENTER_CRITICAL(); startTC1Capture(); //啟動定時 /計數(shù)器 1再次進(jìn)行測 t startTC2Capture();//啟動定時 /計數(shù)器 2再次進(jìn)行測盆 portEXIT_CRITICAL(); } }
4總結(jié)
本文創(chuàng)新點(diǎn):無線傳感器網(wǎng)絡(luò)是一種全新的信息獲取和處理方式,具有廣泛的應(yīng)用前景。本文在分析國內(nèi)外研究現(xiàn)狀和無線傳感器網(wǎng)絡(luò)功能需求的基礎(chǔ)上,提出并實現(xiàn)了利用 ARM處理器采用嵌入式技術(shù)設(shè)計無線傳感器網(wǎng)絡(luò)汽車防盜系統(tǒng)的總體方案,并重點(diǎn)開展了節(jié)點(diǎn)的軟硬件方面的研究,采用嵌入式 ARM處理器,結(jié)合 GPRS通信模塊 MC39i,振動傳感器實現(xiàn)了一種高性能無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的硬件設(shè)計,在實際使用,系統(tǒng)靈敏度高,運(yùn)行穩(wěn)定,具有較高的實用價值