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