新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的裝載機障礙物監測預警系統設計

        基于ARM的裝載機障礙物監測預警系統設計

        作者: 時間:2011-12-16 來源:網絡 收藏

          距離值通過PIC16C57的10腳進行串行輸出,經MAX232芯片后與ARM的串口相連。芯片MAX232是為RS232標準串口設計的接口電路,它完成TTL電平和RS232電平的轉換[8]。

        2.2 聲光報警電路設計

          本系統要求根據影響裝載機穩定性的障礙物距離的臨界值對危險狀況進行三級報警。當處于低危險狀況時,只有指示燈綠燈被點亮,提醒駕駛者注意;當危險級別增高時,指示燈黃燈點亮,同時伴隨有舒緩的蜂鳴聲,提醒駕駛者采取措施;當達到最高危險級別時,指示燈紅燈被點亮,同時蜂鳴聲由舒緩轉為急促,提醒駕駛者趕緊制動。
        設計中,分別采用了LPC2290的P2.20(GPIOA4)驅動綠色LED,P2.21(GPIOA5)驅動黃色LED, P2.22(GPIOA6)驅動紅色LED,P2.23(GPIOA7)驅動蜂鳴器。所設計的報警電路如圖3所示。

        圖3 報警電路圖

        3 系統軟件設計

          常用的嵌入式操作系統有VxWorks、Windows CE、嵌入式Linux和μC/OS-Ⅱ等,由于μC/OS-Ⅱ嵌入式系統具有公開源代碼,具有實時多任務內核來進行多任務調度等優點[9],所以本系統選用μC/OS-Ⅱ嵌入式操作系統。

          由于采用模塊化編程,所以μC/OS-II下系統任務的劃分也是基于不同的功能模塊,每一個模塊被分解成一個或者多個任務,每個任務被安排一個優先級。這樣,一旦這些任務被建立起來,它們之間的調度情況就完全由μC/OS-II來完成。結合本系統的設計需求,程序中創建串口通信任務、報警任務、LCD顯示任務。其軟件流程框圖如圖4所示。

        圖4 軟件流程框圖

          上電后,首先進行硬件的初始化,然后對μC/OS-II操作系統進行初始化,建立任務,進行多任務調度。μC /OS - II的任務調度是搶占式的,所以在設置任務優先級的時候應該盡量考慮任務對實時性的要求。即使兩個任務的重要性是相同的,它們也必須有優先級上的差異,這也就意味著高優先級的任務在處理完成后必須進入等待或掛起狀態,否則低優先級的任務永遠也不可能執行。本系統中設置串口通信任務的優先級高于液晶顯示任務,液晶顯示任務的優先級又高于報警任務。

          1.串口通信任務完成超聲波測距部分與ARM處理器之間的數據傳輸。串口通信部分主要包括兩部分內容:用戶接口函數和任務函數。串口共有5個用戶接口函數,分別為deopen()、dclose()、dread()、dwrite()和diocontrol()。

          超聲波測距裝置和LPC2290進行通信的部分程序代碼如下:
        diocontrol(Uart0_Handles,UART0_SET_MODE, (void *)Mode0); // 設置UART 模式
        diocontrol(Uart0_Handles,UART0_SET_TIMEROUT,(void *)5); // 設置接收超時因子, 參數 =0 則關閉超時
        diocontrol(Uart0_Handles, UART0_CLR_FIFO, (void *)0); // 清空接收軟FIFO
        while (1)
        {Rece_Count=dread(Uart0_Handles, UART_Rece
        _Buff,1); //讀取超聲波發送過來的第一個起始字節,放入緩沖區
        if((Rece_Count>0)(UART_Rece_Buff[0]== ’@’)) //如果讀取成功且第一個字節為‘@’
        {dread(Uart0_Handles,UART_Rece_Buff[1],3); //接收后三位字節,分別為百位數、十位數、個位數
        for(i=1;i4;i++)
        UART_Rece_Buff[i]=UART_Rece_Buff[i]+48; //將十六進制數轉換為ASCII碼值
        for(i=0;i3;i++)
        sbuff[i]=UART_Rece_Buff[i+1]; //接收的數據緩存到數組中,供LCD顯示部分調用
        }
        }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鄂托克旗| 长丰县| 安达市| 江孜县| 洪雅县| 庐江县| 库伦旗| 徐州市| 周口市| 房山区| 若羌县| 安阳县| 恩平市| 普兰县| 尉氏县| 平顶山市| 鄂州市| 佳木斯市| 榆社县| 宜兰县| 瑞金市| 宁夏| 乐业县| 岢岚县| 高陵县| 彩票| 屯昌县| 都安| 当涂县| 谷城县| 钦州市| 福泉市| 溧阳市| 沁阳市| 宜都市| 南昌市| 漠河县| 盘锦市| 论坛| 邯郸市| 合水县|