<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM Linux的電子控制油門設(shè)計

          基于ARM Linux的電子控制油門設(shè)計

          作者: 時間:2013-11-11 來源:網(wǎng)絡(luò) 收藏

          1 系統(tǒng)原理

          1.1 電控油門原理
            工作時,由駕駛員發(fā)出轉(zhuǎn)速的控制指令,由節(jié)氣門開度傳感器采集發(fā)動機(jī)的轉(zhuǎn)速參數(shù),并把信號輸入電控單元;電控單元將控制信號和反饋的節(jié)氣門位置信號進(jìn)行比較,根據(jù)比較的結(jié)果來驅(qū)動執(zhí)行器改變節(jié)氣門的開度,使實際的開度與控制開度達(dá)到一致,從而實現(xiàn)車速的自動控制。
          1.2 舵機(jī)控制原理
            舵機(jī)是一種位置(角度)伺服驅(qū)動器,適用于那些角度需要不斷變化并可以保持的系統(tǒng)。S3003型舵機(jī)有3個引腳,分別為電源Vcc、地GND和控制線Signal??刂菩盘栍蒘ignal通道進(jìn)入信號調(diào)制芯片,獲得直流偏置電壓[2]。它的內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為20 ms、寬度為15 ms的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負(fù)輸出到電機(jī)驅(qū)動芯片以決定電機(jī)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)動。
            控制線的輸入是一個寬度可調(diào)的周期性方波脈沖信號,方波脈沖信號的周期為20 ms(即頻率為50 Hz)。當(dāng)方波的脈沖寬度改變時,舵機(jī)的角度發(fā)生改變,角度變化與脈沖寬度成正比。其輸出軸轉(zhuǎn)角與輸入脈沖寬度關(guān)系如圖1所示。
          基于ARM Linux的電子控制油門設(shè)計
          圖1 舵機(jī)輸出轉(zhuǎn)角與輸入脈沖寬度關(guān)系
          2 系統(tǒng)設(shè)計
            本系統(tǒng)采用三星公司的S3C2410和Futaba公司的S3003型舵機(jī)分別作為控制器和執(zhí)行器,使用操作系統(tǒng),實驗平臺為濟(jì)南恒信有限公司的發(fā)動機(jī)實驗平臺。
          基于ARM Linux的電子控制油門設(shè)計
          圖2 系統(tǒng)流程
          2.1 系統(tǒng)設(shè)計流程
            系統(tǒng)流程如圖2所示??刂破鱏3C2410完成各項初始化工作,接收來自操作人員的cmd指令,根據(jù)cmd的值來進(jìn)行一系列的處理,包括停止執(zhí)行器、旋轉(zhuǎn)多少角度等。然后通過節(jié)氣門開度傳感器和轉(zhuǎn)速傳感器計算出等效的cmd值,并與cmd進(jìn)行比較以決定是進(jìn)行下一次cmd的判斷,還是調(diào)整執(zhí)行器的角度。
          2.2 設(shè)置系統(tǒng)時鐘頻率
            為了降低電磁干擾和降低板間布線要求,芯片外接的晶振頻率通常很低,通過時鐘控制邏輯的PLL提高系統(tǒng)時鐘[3]。在三星公司的S3C2410A手冊中列出了推薦的幾種時鐘頻率,這里我們選用輸出時鐘頻率FCLK=20280 MHz的配置,即PLL控制寄存器中的:MDIV=161(0xa1)、PDIV=3、SDIV=1。
            在UBoot的board/smdk2410/smdk2410.c中進(jìn)行設(shè)置:
          #define M_MDIV 0xA1
          #define M_PDIV 0x3
          #define M_SDIV 0x1
          int board_init (void){
            ……
            /* configure MPLL */
            clk_power﹥MPLLCON = ((M_MDIV ﹤﹤ 12) + (M_PDIV ﹤﹤ 4) + M_SDIV);
            ……
          }
            在UBoot的cpu/arm920t/start.S中設(shè)置FCLK、HCLK、PCLK的比例:
            /* FCLK:HCLK:PCLK = 4:2:1*/
            ldrr0, =CLKDIVN
            mov r1, #3
            strr1, [r0]
            由以上程序可知FCLK=202.80 MHz,HCLK=10140 MHz,PCLK=50.70 MHz,而S3C2410的PWM模塊使用的時鐘是PCLK,所以PWM的輸入時鐘為50.7 MHz。
          2.3 舵機(jī)驅(qū)動程序編寫
          2.3.1 使用udev來動態(tài)建立設(shè)備節(jié)點
             2.6系列的內(nèi)核使用udev來管理/dev目錄下的設(shè)備節(jié)點。同時它也用來接替devfs及hotplug的功能,這意味著它要在添加/刪除硬件時處理/dev目錄以及所有用戶空間的行為,包括加載firmware時。udev依賴于sysfs輸出到用戶空間的所有設(shè)備信息,以及當(dāng)設(shè)備添加或者刪除時/sbin/hotplug對它的通知[4]。
            為了udev能夠正常工作,一個設(shè)備驅(qū)動程序要做的事情是通過sysfs將驅(qū)動程序所控制設(shè)備的主設(shè)備號和次設(shè)備號導(dǎo)出到用戶空間。udev在sysfs中的/class/目錄樹中搜索名為dev的文件,這樣內(nèi)核通過/sbin/hotplug接口調(diào)用它的時候,就能獲得分配給特定設(shè)備的主設(shè)備號和次設(shè)備號[5]。一個設(shè)備驅(qū)動程序只需要使用class_create接口為它所控制的每個設(shè)備創(chuàng)建該文件。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          關(guān)鍵詞: ARM Linux 電子控制油門

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();