<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 持汽車(chē)電子的嵌入式軟件編程接口庫設計

持汽車(chē)電子的嵌入式軟件編程接口庫設計

——
作者:李志強 朱澄 李軍 時(shí)間:2006-11-28 來(lái)源:無(wú)憂(yōu)電子開(kāi)發(fā)網(wǎng) 收藏

引言    

近年來(lái),隨著(zhù)電子科學(xué)和計算機技術(shù)的飛速發(fā)展,設備的應用越來(lái)越多。目前,國內技術(shù)水平跟國外汽車(chē)廠(chǎng)商相比還有很大差距,尤其是在發(fā)動(dòng)機電控方面,國內尚無(wú)獨立開(kāi)發(fā)先例。本文介紹的柴油機電控系統嵌入式軟件平臺就是面向,遵循OSEK標準,應用于汽車(chē)動(dòng)力總成控制的系統平臺。    軟件平臺由微型系統內核和應用編程接口庫組成。嵌入式操作系統內核負責任務(wù)調度及事件處理等,編程接口庫負責將開(kāi)發(fā)常用的算法和MPC555底層硬件的驅動(dòng)函數進(jìn)行控件級封裝,供用戶(hù)調用。在中,開(kāi)發(fā)人員通過(guò)調用編程接口庫中已有的函數,就可以實(shí)現常用運算功能以及常規硬件操作。

發(fā)動(dòng)機電控系統層次圖

                

                                      圖1 發(fā)動(dòng)機電控系統層次圖 

整個(gè)電控系統包括硬件平臺、底層驅動(dòng)、嵌入式軟件平臺和上層用戶(hù)四個(gè)層次。各個(gè)層次關(guān)系,如圖1所示。

硬件平臺簡(jiǎn)介    

發(fā)動(dòng)機電控系統硬件平臺主控CPU為MPC555,它是一款高性能的32位,是專(zhuān)為汽車(chē)電子、航空航天、智能系統等高端嵌入式控制系統所設計的芯片。其獨特之處在于其具有浮點(diǎn)運算單元,支持浮點(diǎn)代碼的直接編程;此外,MPC555還具有可編程的時(shí)間處理模塊,可通過(guò)對該模塊的獨立編程,實(shí)現對發(fā)動(dòng)機曲軸、凸輪軸等復雜周期信號的處理,無(wú)需外接單獨的CPU,從而大大簡(jiǎn)化了軟、硬件設計。

發(fā)動(dòng)機電控系統硬件電路結構框圖

                                                   圖2 發(fā)動(dòng)機電控系統硬件電路結構框圖 

以MPC555為核心控制單元,輔以相應的輸入信號處理、輸出控制和通訊單元設計的發(fā)動(dòng)機電控系統硬件電路結構框圖,如圖2所示。

嵌入式操作系統內核簡(jiǎn)介    

該嵌入式操作系統是以MPC555/MPC556為硬件運行平臺,參照歐洲OSEK標準,構建的超微型實(shí)時(shí)安全的嵌入式操作系統內核。該系統為用戶(hù)提供各種任務(wù)調度、事件處理及中斷響應機制,并由操作系統管理各個(gè)任務(wù)之間的切換和信息傳遞。    

為滿(mǎn)足系統實(shí)時(shí)性的要求,操作系統任務(wù)管理采用基于任務(wù)優(yōu)先級的可搶占式任務(wù)機制,任務(wù)之間通過(guò)消息郵箱和消息隊列傳遞變量和信息。另外,系統內核利用開(kāi)放源碼機制,通過(guò)裁減與移植,可以支持多種國際主流處理器。 

該嵌入式操作系統內核的功能結構,如圖3所示。

支持汽車(chē)電子的嵌入式操作系統內核結構圖
 圖3支持汽車(chē)電子的嵌入式操作系統內核結構圖

嵌入式編程接口庫設計    

應用編程接口庫的設計是將發(fā)動(dòng)機電控系統需要的常規算法和硬件基本操作封裝為函數形式,嵌入在操作系統中,為開(kāi)發(fā)人員提供一個(gè)友好安全的軟件平臺。 

該嵌入式編程接口庫的結構,如圖4所示。

支持汽車(chē)電子的嵌入式編程接口庫結構圖

                                         圖4 支持汽車(chē)電子的嵌入式編程接口庫結構圖

嵌入式基礎編程接口庫    

嵌入式基礎編程接口庫是指各行業(yè)在電子控制方面通用的編程接口庫。該庫利用現有車(chē)輛數據作為模擬數據進(jìn)行控制算法和線(xiàn)性插值算法庫函數驗證,數據結構符合 ASAP2標準。該接口庫為用戶(hù)提供了一整套開(kāi)發(fā)中常用的算法函數和基本操作,對典型的算法和操作進(jìn)行控件級封裝,為應用程序提供一個(gè)完整的通用的系統調用函數庫。

該函數庫主要包括:

1. 2D、3D線(xiàn)性插值算法接口庫:在二維、三維表中,經(jīng)過(guò)線(xiàn)性插值得到與輸入量對應的函數值,用于發(fā)動(dòng)機控制參數查表算法。
 
2. PID控制器算法接口庫:PID控制器是一種線(xiàn)性控制器。它根據給定值與實(shí)際輸出值構成控制偏差,將偏差的比例、積分和微分通過(guò)線(xiàn)性組合構成控制量,主要用于控制噴油輸出信號。

3. 平滑濾波處理算法接口庫:主要用于對采集的模擬信號進(jìn)行平滑和去抖處理。4. 其他汽車(chē)電子控制系統中,常用的控制算法和信號處理函數接口庫。    

嵌入式基礎編程接口庫的設計有兩個(gè)目的:一是方便調用應用程序,增加程序可靠性和編程效率;二是希望通過(guò)將處理方法標準化,在不改變程序結構的情況下,可以將程序言在不同的硬件平臺上進(jìn)行移植,免去了軟件開(kāi)發(fā)人員對一些典型算法和操作的重復編程。

嵌入式專(zhuān)用編程接口庫    

嵌入式專(zhuān)用編程接口庫,是指針對特定柴油機和ECU的硬件特殊需要設計的系統專(zhuān)用編程接口庫。該接口庫的設計符合OSEK操作系統調用規范,為用戶(hù)提供底層硬件MPC555的各個(gè)功能模塊的驅動(dòng),并針對汽車(chē)電子完成了基本的數據處理工作,提供軟件方面的可調用函數。嵌入式專(zhuān)用編程接口庫主要包括:

1. 模擬量輸入檢測及處理接口庫:發(fā)動(dòng)機的溫度、壓力等傳感器信號以電壓形式被電控單元ECU的模擬量通道采集。信號采集方式可以是需要時(shí)調用采集函數,也可以設置成QADC單元自動(dòng)按定時(shí)器周期順序采集。在系統初始化時(shí),用戶(hù)可根據具體情況分別設定各個(gè)通道的采集方式。

 2. 開(kāi)關(guān)量輸入/輸出接口庫:用于對離合器、剎車(chē)等開(kāi)關(guān)量信號采集并做去抖處理,結果賦值給指定的全局變量,供用戶(hù)需要時(shí)讀取。傳感器電源、渦輪增壓器控制等開(kāi)關(guān)量輸出,則通過(guò)直接調用相應函數由引腳輸出高低電平實(shí)現。I/O口的引腳方向在系統初始化時(shí)根據硬件設計設定。

3. 周期量輸入檢測及輸出控制接口庫:MPC555內部集成的時(shí)間處理單元TPU自帶曲軸/凸輪軸信號檢測功能和噴油信號輸出控制功能。為方便用戶(hù)使用,我們將各個(gè)功能封裝為底層驅動(dòng)函數形式,用戶(hù)可以調用這些函數設定TPU的工作方式。

4. 其他和單片機硬件相關(guān)的驅動(dòng)函數接口庫。    

底層驅動(dòng)接口庫是汽車(chē)電子開(kāi)發(fā)人員和底層硬件系統之間的橋梁,使開(kāi)發(fā)人員可以最大限度地脫離底層硬件轉而專(zhuān)注于汽車(chē)控制算法設計。用戶(hù)通過(guò)對底層驅動(dòng)接口函數的調用,就可以方便地完成對MPC555底層硬件的操作。

嵌入式函數庫    

基于上述算法和底層驅動(dòng)函數庫,針對該控制系統的具體需求和功能,兼顧在汽車(chē)電子領(lǐng)域的通用性,我們對函數和算法以及各種操作進(jìn)行了更高一層的封裝,為用戶(hù)提供了更標準的函數庫,更大程度地方便了用戶(hù)。API函數庫包含了發(fā)動(dòng)機各種信號的輸入處理和輸出控制函數,能夠實(shí)現更加具體的功能。    

以發(fā)動(dòng)機噴油控制函數為例,當系統檢測到曲軸信號缺齒位置時(shí),產(chǎn)生中斷。系統根據測得的發(fā)動(dòng)機轉數,以及各種溫度和壓力參數,結合怠速、剎車(chē)等開(kāi)關(guān)的狀態(tài),設定噴油輸出信號的起始時(shí)刻和脈沖寬度,從而實(shí)現對發(fā)動(dòng)機性能的控制。

結語(yǔ)    

本文介紹了一種支持汽車(chē)電子的嵌入式編程接口庫的內容和設計方法。接口庫提供了可供系統直接調用的各種API函數,以實(shí)現常規算法和硬件操作。接口庫的設計相對獨立,實(shí)現了與硬件平臺、操作系統和控制算法的并行開(kāi)發(fā),最后統一聯(lián)調,大大縮短了開(kāi)發(fā)的時(shí)間。同時(shí),這種層次分明的設計思想,也使得接口庫設計更加通用和標準化,可以通過(guò)簡(jiǎn)單修改移植到新的軟、硬件平臺之上,提高了代碼的重復利用率,有較高的使用價(jià)值。

pid控制器相關(guān)文章:pid控制器原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>