新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > μC/OS-II在壓力測控系統中的應用

        μC/OS-II在壓力測控系統中的應用

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

        2.3 相關驅動的編寫及測試
        2.3.1 C8051F041驅動的編寫
        為了使裁減后的操作能在 C8051F041上正常運行,首先要編寫驅動。代碼如下
        void SYSCLK_Init(void)
        {WDTCN = 0xde;
        WDTCN = 0xad;
        unsigned n;
        OSCXCN = 0x67;
        for (n = 0; n 255; n++) ;
        while ( !(OSCXCN 0x80));
        OSCICN = 0x08; }
        另外,各個端口按照所需要的功能進行工作也需要編寫相應驅動:void PORT_Init (void);除此之外,還需編寫的驅動有 CAN接口的驅動 void CAN_Init(void)、 AD驅動 void AD_INIT(void)、DA驅動DA_INIT(void),從而完成的數據的采集與控制功能。
        2.3.3 測試工作
        在操作系統移植完成后,要測試操作系統移植是否成功,由于操作系統昀主要的功能是任務調度,因我們只要驗證在程序運行的過程中,任務確實發生了調度,就可以判斷操作系統運行了。
        這里將通過兩個端口連接兩個LED燈,通過編寫兩個不同優先級的任務來實現。其中一個任務編寫如下:
        void mytask1(void) KCREENTRANT {unsigned char temp=1,times1=0; InitTimer0(); for(;;) {times1++;
        ADCANif(!(LED0x01)) 采發 { LED = 1; 樣送} 任任
        OSTimeDly(100); 務務 } }

        本文引用地址:http://www.104case.com/article/152165.htm

        3 操作系統之上的軟件部分設計

        根據系統功能的要求,要完成的工作主要有以及下幾個部分: A/D數據采樣、 CAN發送數據、CAN接收數據、數據濾波、PID算法以及DA輸出控制,系統功能框圖如圖2所示。
        3.1 系統主程序
        由于加入了實時內核其主程序部分編寫略有不同,在程序中首先要初始化本程序中所有要用到的驅動,然后調用函數OSInit()初始化u,僅接著通過創建任務函數創建任務,昀后調用OSStart()啟動u操作系統。
        3.3 PID控制程序

        PID控制中,如果系統產生偏差輸入,在偏差很大的情況下進行 PID控制的話,會導致系統響應過慢,為了提高 PID控制的響應速度,在 PID控制中加入比例控制環節,當偏差大于某個值的時實行比例控制,小于某個值時,進行PID控制。其控制流程如圖 3所示。
        在圖3中,PID算法下的控制增量如下:
        開始
        u(k ) = Kpe(k ) + K ie(k )
        + Kd [e(k ) e(k 1)]
        比例控制算法的增量如下: 計算偏差 e(k)=r(k)-y(k)
        u(k) = Kp e(k)


        △e(k)=e(k)-e(k-1) 計算△e(k)=e(k)-e(k-1)

        輸出控制量 u(k)+ △u(k)


        4 結束語
        在色譜儀檢測控制裝置中采用µ嵌入式實時操作系統,很好提高了系統的可移植性和實時性,系統后續改進的成本也得以降低,在原有系統中采用純 PID空算法的基礎上,加入比例控制控制算法,很好的提高了系統控制響應的快速性。
        本文作者創新點: µC/OS-II在SOC芯片C8051F041上的移植;將 µC/OS-II測控裝置;在原有PID控制算法基礎上加入比例控制。

        高效液相色譜儀相關文章:高效液相色譜儀原理

        上一頁 1 2 下一頁

        關鍵詞: 應用 系統 壓力 C/OS-II

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 子长县| 青岛市| 凯里市| 湖南省| 玉环县| 宜宾县| 丹东市| 从化市| 咸宁市| 南召县| 会昌县| 肇州县| 曲麻莱县| 沾益县| 大邑县| 红桥区| 若尔盖县| 萝北县| 偏关县| 湘乡市| 奎屯市| 五河县| 海南省| 阿勒泰市| 盐城市| 丰顺县| 松潘县| 保亭| 教育| 达拉特旗| 金坛市| 临安市| 四子王旗| 巴林左旗| 通榆县| 屏东县| 桂阳县| 江都市| 特克斯县| 威远县| 肇东市|