新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 嵌入式WSNs汽車防盜系統

        嵌入式WSNs汽車防盜系統

        作者: 時間:2009-12-29 來源:網絡 收藏

        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,振動傳感器實現了一種高性能無線傳感器網絡節點的硬件設計,在實際使用,系統靈敏度高,運行穩定,具有較高的實用價值

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
        分頻器相關文章:分頻器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 左权县| 崇礼县| 梨树县| 金寨县| 瑞金市| 临泉县| 平罗县| 无棣县| 天祝| 安吉县| 同仁县| 宜黄县| 县级市| 宁晋县| 张家港市| 宁蒗| 泽州县| 泰和县| 高安市| 灵山县| 乳山市| 肇州县| 通河县| 进贤县| 晋中市| 罗平县| 武夷山市| 宿州市| 梁平县| 陈巴尔虎旗| 吴川市| 和林格尔县| 湟源县| 应城市| 井陉县| 乐至县| 隆林| 彩票| 阿拉善左旗| 莱西市| 蒙自县|