嵌入式WSNs汽車(chē)防盜系統(tǒng)
2.4振動(dòng)傳感器模塊設(shè)計(jì)本文引用地址:http://m.butianyuan.cn/article/197761.htm
本文振動(dòng)信號(hào)的檢測(cè)采用 ADXL202實(shí)現(xiàn),ADXL202是美國(guó)模擬器件公司設(shè)計(jì)生產(chǎn)的的新型單芯片雙軸加速度傳感器,加速度測(cè)量范圍是士 2g;動(dòng)態(tài)測(cè)試帶寬為 0~5kHz,可測(cè)量靜態(tài)加速度、振動(dòng)和傾角。本文采用加速度傳感器用于監(jiān)測(cè)較大的振動(dòng)或移動(dòng),達(dá)到防盜的目的。由于振動(dòng)在微觀上是物體加速度的快速變化,因此本文采用此原理進(jìn)行振動(dòng)信號(hào)的監(jiān)測(cè)。將 ADXL202的 X軸和 Y軸加速度輸出引腳與 CPU的定時(shí)計(jì)數(shù)器相連接,利用 TC捕獲芯片的 PWM信號(hào)得到當(dāng)前的加速度,如果連續(xù)監(jiān)測(cè)到芯片加速度的急劇變化,則可判定振動(dòng)的產(chǎn)生,加速度的變化程度對(duì)應(yīng)于振動(dòng)的強(qiáng)弱。設(shè)置與芯片 T2引腳連接的電阻值為
1.25MS2,使得其輸出信號(hào)的周期為 l 0ms,從而獲得較好的分辨率,其原理圖如圖 5所示。
3.系統(tǒng)軟件設(shè)計(jì)
3.1 GPRS模塊軟件設(shè)計(jì)
GPRS模塊用于無(wú)線傳感器網(wǎng)絡(luò)間的通信,它是節(jié)點(diǎn)的重要組成部分之一。通過(guò) GPRS模塊進(jìn)行數(shù)據(jù)傳輸本質(zhì)上是利用了移動(dòng)通信網(wǎng)絡(luò)與 Internet網(wǎng)絡(luò)之間的互聯(lián),因而傳輸?shù)臄?shù)據(jù)需要符合 Internet網(wǎng)絡(luò)的 TCP/IP協(xié)議標(biāo)準(zhǔn)。無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)利用 GPRS實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)倪^(guò)程為:首先利用 ARM處理器控制 MC39i模塊實(shí)現(xiàn)與 Internet網(wǎng)絡(luò)的連接,通過(guò) PPP協(xié)議獲得 IP地址;然后將經(jīng)過(guò) TCP/IP以及 PPP協(xié)議封裝的數(shù)據(jù)通過(guò) RS232串口發(fā)送給 MC39i。根據(jù) GPRS撥號(hào)上網(wǎng)的通信規(guī)程以及 MC39i模塊的控制說(shuō)明,本文設(shè)計(jì)如圖 6所示系統(tǒng)流程圖完成 GPRS模塊撥號(hào)上網(wǎng)以及后續(xù)的數(shù)據(jù)傳輸處理,其中 PPP協(xié)商處理和數(shù)據(jù)的 TCP/IP以及應(yīng)用層的封裝處理是本模塊設(shè)計(jì)的重點(diǎn)和難點(diǎn)。
3.2 MC39i驅(qū)動(dòng)程序設(shè)計(jì)
MC39i模塊驅(qū)動(dòng)設(shè)計(jì)主要包括 FreeRTOS下 USART驅(qū)動(dòng)程序設(shè)計(jì),MC39i模塊的初始化和 GPRS網(wǎng)絡(luò)參數(shù)設(shè)置。它在保證 GPRS模塊可用性的前提下,為數(shù)據(jù)的傳輸提供通道,為鏈路層以及上層協(xié)議的實(shí)現(xiàn)提供方便的接口。
串口驅(qū)動(dòng)程序的工作過(guò)程為:當(dāng)某一個(gè)任務(wù)需要通過(guò)串口發(fā)送數(shù)據(jù)時(shí),必須先得到該串口發(fā)送隊(duì)列的信號(hào)量時(shí)才可發(fā)送數(shù)據(jù),發(fā)送結(jié)束后釋放信號(hào)量 ;如果無(wú)法取得信號(hào)量,則掛起該任務(wù)等待信號(hào)量有效。驅(qū)動(dòng)程序中為 USART建立發(fā)送隊(duì)列和接收隊(duì)列兩個(gè)隊(duì)列。當(dāng)發(fā)送隊(duì)列不為空時(shí),發(fā)送中斷使能,從而將發(fā)送隊(duì)列中的數(shù)據(jù)通過(guò)串口中斷服務(wù)程序發(fā)送到串口。如果需要發(fā)送數(shù)據(jù),只需調(diào)用 xSerialPutChar函數(shù)向發(fā)送隊(duì)列傳送數(shù)據(jù)即可 ;如果需要從串口接收數(shù)據(jù),需調(diào)用 xSerialGetChar函數(shù),等待從隊(duì)列接收數(shù)據(jù),串口驅(qū)動(dòng)程序即可使能 USART接收中斷,進(jìn)行數(shù)據(jù)接收的準(zhǔn)備,串口接收中斷服務(wù)會(huì)將接收到的數(shù)據(jù)自動(dòng)發(fā)送到串口接收隊(duì)列中。
建立發(fā)送和接收隊(duì)列的代碼如下: xRxedChars=xQueueCreate( uxQueueLength, (portBASE TYPE)sizeof( *pDataPackage)); xCharsForTx=xQueueCreate(uxQueueLength+1, portBASE_TYPE)sizeof(*pDataPackage)); 其中 xQueueCreate為 FreeRTOS操作系統(tǒng)提供的創(chuàng)建隊(duì)列的 API接口函數(shù)。第一個(gè)參
數(shù)指定了隊(duì)列的深度,第二個(gè)參數(shù)指定了隊(duì)列的寬度。驅(qū)動(dòng)程序?yàn)閼?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振動(dòng)傳感器任務(wù)設(shè)計(jì)
本文采用 AT91 SAM7S256處理器的定時(shí)計(jì)數(shù)器實(shí)現(xiàn)對(duì)振動(dòng)傳感器 ADX202輸出 PWM信號(hào)的測(cè)量。采用加速度傳感器測(cè)量振動(dòng)信號(hào)用于監(jiān)測(cè)較大的振動(dòng)或移動(dòng),達(dá)到防盜的作用。由于振動(dòng)是物體加速度的快速變化,本文采用此原理進(jìn)行振動(dòng)信號(hào)的監(jiān)測(cè)。驗(yàn)。最后確定當(dāng)加速度連續(xù)兩次變化超過(guò) 0.03 m/s2時(shí),發(fā)出振動(dòng)警報(bào),這樣可以靈敏的監(jiān)測(cè)汽車(chē)移動(dòng)和碰撞等事件,并且排除了由于其他情況導(dǎo)致的信號(hào)波動(dòng)。,以下給出加速度傳感器處理任務(wù)的核心代碼如下:
void vADXLTask( void *pvParameters) { (void)pvParameters;
InitTC1Capture();//初始化 TC1, 2工作模式 InitTC2Capture();
while(1) { xQueueReceive(ADXLCapDataQ, pcBuffer, xBlockTitne) pShkData=AnalysisADXLdataQ; //分析 X, Y軸的所得的計(jì)數(shù)器捕獲數(shù)值 AssertX=pdFALSE;//狀態(tài)變量復(fù)位 AssertY=pdFALSE; xQueueSend(ShakeDataQ, pShkData, xBIockTime)://將振動(dòng)信號(hào)發(fā)送到隊(duì)列中 vTaskDelay(WAIT*TICK_PER_SEC);//任務(wù)延時(shí) portENTER_CRITICAL(); startTC1Capture(); //啟動(dòng)定時(shí) /計(jì)數(shù)器 1再次進(jìn)行測(cè) t startTC2Capture();//啟動(dòng)定時(shí) /計(jì)數(shù)器 2再次進(jìn)行測(cè)盆 portEXIT_CRITICAL(); } }
4總結(jié)
本文創(chuàng)新點(diǎn):無(wú)線傳感器網(wǎng)絡(luò)是一種全新的信息獲取和處理方式,具有廣泛的應(yīng)用前景。本文在分析國(guó)內(nèi)外研究現(xiàn)狀和無(wú)線傳感器網(wǎng)絡(luò)功能需求的基礎(chǔ)上,提出并實(shí)現(xiàn)了利用 ARM處理器采用嵌入式技術(shù)設(shè)計(jì)無(wú)線傳感器網(wǎng)絡(luò)汽車(chē)防盜系統(tǒng)的總體方案,并重點(diǎn)開(kāi)展了節(jié)點(diǎn)的軟硬件方面的研究,采用嵌入式 ARM處理器,結(jié)合 GPRS通信模塊 MC39i,振動(dòng)傳感器實(shí)現(xiàn)了一種高性能無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的硬件設(shè)計(jì),在實(shí)際使用,系統(tǒng)靈敏度高,運(yùn)行穩(wěn)定,具有較高的實(shí)用價(jià)值
評(píng)論