衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于MC9S12DP256芯片和μC/OS-II實現CCP軟件的設計

電子設計 ? 來源:‘微計算機信息 ? 作者:作者:陳劍 ? 2021-04-12 09:57 ? 次閱讀

CCP 協議是一種CAN 總線標定匹配協議。本文簡單介紹該協議的基本原理,以及一種基于該協議的汽車ECU 標定系統的實現方法。最后,結合MC9S12DP256 芯片以及μC/OS-II操作系統,詳細討論了此標定系統的CCP 軟件實現方法。

1 前言

標定是指根據整車的各種性能要求(如動力性、經濟性、排放及輔助功能等),來調整、優化和確定整車上各ECU(包括發動機和各子系統 ECU)的運行及控制參數的控制算法。通過標定系統,能夠很方便的讀取 ECU 中的標定變量數據到標定平臺,并可以對這些數據進行編輯修改,編輯后的數據又可以寫入 ECU,從而達到修改 ECU 中標定參數的目的。功能完善且靈活方便的標定軟件對整個汽車ECU 控制系統的開發起到事半功倍的效果。目前,一般的標定系統都是采用基于串行口的點對點的通信方式,這種通信方式具有很大的局限性,而且通信協議都不一樣。在這個ECU 系統中,將采用 CAN 總線的通信方式和CCP(CAN Calibration Protocol)協議。

2 CCP 協議簡介

1996 年6 月,歐洲ASAP 項目組發布了現行的2.0 版,它采用CAN 2.0B(11 位或29位ID)進行MCS(measurement and calibration system)與ECU 之間的通信。該協議具有通用性強,適用范圍廣的特點,無論對8 位低速帶CAN 的控制器,還是32 位高速帶CAN 的控制器,均可滿足工作要求。基于CCP 協議的ECU 標定采用主-從通信方式,主設備通過CAN 總線與多個從設備相連,其中主設備是測量標定系統MCS(Measurement CalibrationSystem),從設備是需要標定的ECU。根據CCP 協議,主設備首先與其中一個從設備建立邏輯鏈接, 建立邏輯連接后,主、從機之間所有的數據傳遞均由主機控制,從機執行主機命令后返回包含命令響應值或錯誤代碼等信息的報文。

3 標定系統的實現

3.1 上位機部分

友好的人機頁面對于標定工作的順利進行是起決定性作用的,此標定系統的設計克服了以往大多數標定系統只能通過鍵盤對標定數據進行修改的局限性,在標定系統中除了表格編輯方式外,還將引入圖形編輯方式。將標定變量數據轉換成圖形,將使標定員對于標定變量數據比如說修正曲線和 MAP 圖有一個更直觀了解,并且可以通過鼠標拖動對圖形進行編輯修改,從而達到編輯修改標定變量數據的目的,這樣大大方便了對于修正曲線和 MAP圖類型標定變量的編輯。

在這里我們是采用 Visual C++完成標定頁面的設計以及與下位機的通信。該標定系統除了具有對 ECU 的標定功能外,還引入了實時監測功能,從而可以很快得到標定操作的返回信息。如圖所示,監測界面主要完成各種監測量數據的實時接收和顯示功能。測量得到的數據以數字和圖形兩種方式顯示出來,數據可以存儲。歷史數據可以從文件中讀出來,進行離線分析。標定界面則是完成標定變量數據的顯示、編輯修改以及上傳下載功能。根據變量的不同類型,變量數據分別以參量、二維、三維的形式表示。

基于MC9S12DP256芯片和μC/OS-II實現CCP軟件的設計

圖 1 標定系統實現圖

3.2 底層ECU 部分

而底層 ECU 部分,標定系統在這里采用的是Freescale 公司的MC9S12DP256,這是一款16 位CPU 及0.25 微米、高速、高性能5.0V FLASH 存儲器技術的中檔芯片。它具有25MHz的主頻、256K 字節的FLASH 存儲器、16 通道的8 位A/D 轉換器以及多達5 個的高速CAN 控制器。其較高的性能價格比使其非常適合用于一些中高檔汽車電子系列相關產品。同時其較簡單的背景開發模式(BDM)使得開發成本進一步降低,也使得現場開發與系統升級變得更加方便。

需要標定的變量稱為標定參數,標定定義也就是修改駐扎在ECU 內存中的變量的內容。根據標定參數所在不同地址空間( RAM、FLASH 或EEPROM) , 這里也就有了不同的標定方法。RAM EEPROM 標定的速度較塊,但RAM 和EEPROM 空間有限,所需的標定參數的數目也就受到了限制,而FLASH 空間較大,但標定的速度相對較慢。這里考慮選擇芯片的實際情況,選擇了FLASH 標定的方法。當標定參數需要存放在FLASH 中時, 在ECU 上電初始化后, 程序首先將標定參數的初始值復制到RAM 中, 在標定軟件中該段用來存放標定參數的RAM 稱為Calibration RAM。標定過程中, 標定軟件修改Calibration RAM 中的參數值。標定全部結束后, 再將該段RAM 中的內容復制回FLASH 中。

4 軟件設計

標定系統的軟件設計主要分為二個部分:CAN Driver 和CCP Driver,而這二個部分都是基于μC/OS-II 這種實時操作系統上運行。由于ECU 這里采用飛思卡爾的MC9S12DP256,因此可以直接應用芯片CAN 模塊提供的接口,發送CAN 數據。CCP Driver 是標定系統的核心部分,它主要是通過調用CAN Driver 實現與上位機標定軟件的通信,從而進行對ECU的在線標定。

4.1 CAN Driver

在這里我們采用的是μC/OS-II 這種實時操作系統,但在標定過程中,我們處理的數據量很大,通信速度也很快,CAN 接收到一條消息就產生一次中斷,中斷服務子程序,每次中斷都要引起一次任務調度。CPU 大量的時間花在任務切換上,若CPU 還需處理其他事件,則可能出現接收緩沖寄存器接收溢出的錯誤,造成數據丟失。因此,在這里采用一種基于環形緩沖區的方式來實現CAN Driver。整個CAN Driver 由中斷處理程序和底層驅動模塊組成。中斷處理程序在每次CAN 控制器完成收發時,喚醒驅動程序,進行下一步工作,設備相關程序通過對CAN 控制器寄存器的讀寫,完成對CAN 端口的配置和狀態檢測等工作,同時為設備無關軟件和用戶程序提供接口。而底層驅動模塊則主要任務是結合收發消息緩沖區,為應用程序提供了接收和發送消息的接口函數。

(1)中斷處理程序

中斷級程序的程序流程圖如圖 2 所示。首先根據不同的中斷類別進入不同的中斷級程序。若為接收完成中斷,則清除中斷源,將接收到的消息放入接收緩沖區;將該消息存入接收緩沖區存入指針所指向的地址,將該指針向下移動,接收緩沖區計數器加1,并發出信號量通知應用程序有新的消息已經接收到,若有任務正在等待CAN 上的新消息,則該任務進入就緒狀態等待OS 的調度。

圖2 中斷級程序的程序流程圖

若為發送完成中斷,則將發送緩沖區的待發送消息讀出;將有待發送消息且優先級最高的一個中讀取最舊的消息,發送緩沖區計數器減1,發出信號量通知應用程序有一個消息被發出,并匯報當前發送緩沖區的狀態;還應判斷是否為最后一個待發送的消息,若不是,則清除中斷源并將消息發送到總線上,若是最后一個,則禁止發送完成中斷后發送該消息,將這個發送完成中斷保留到應用程序下一次發送消息的時候允許并產生。

(2)底層驅動模塊

底層驅動模塊主要是為應用程序提供了接收和發送消息的接口函數。當接收消息時,如圖3 實線所示,應用程序在信號量處等待;收到一個消息后,ISR從串行端口讀入消息,將其存入環狀緩沖區。然后ISR 發出信號量,通知在等待串口數據的任務已收到一個消息。等待任務收到信號量后,進入就緒狀態,準備被OS 調度器激活。當內核調度該任務運行時,該任務從環狀緩沖區中取出消息,完成接收消息的過程。

圖3 緩沖區接收發送消息

發送消息的方法如圖3 虛線所示。當發送環狀緩沖區已滿時,信號量作為指示,暫停發送任務。為發送消息,任務等待信號量。如果環狀緩沖區未滿,則任務繼續向環狀緩沖區存儲欲發送的消息。如果存儲的消息是緩沖區的第一個字節,則發送中斷允許,中斷程序準備啟動。CAN 發送ISR 從環行緩沖區中取出最舊的消息,同時發送信號量,通知發送任務,表明環狀緩沖區有空間接收另外的消息。接著ISR 將消息從CAN 端口發送到總線上。

4.2 CCP Driver

基于實時操作系統的CCP Driver,標定系統在這里是通過Command 處理機和DAQ 處理機兩部分來實現的。

Command 處理機由一個系統任務來完成。該任務在OS 初始化后就啟動運行,識別CAN 網絡上的CCP 主設備發送給該從設備的會話命令。根據命令做相應動作,并回送命令應答,完成會話。DAQ 處理機由1~n 個系統任務來完成。本項目支持對不同時間要求的監視參數設定不同的DAQ 周期,不同時間要求的監視參數填入不同的DAQ_List,每個DAQ_List 由一個任務完成周期發送。

Command 處理機在收到主設備要求啟動某DAQ_List 命令時, 調用OS 函數OSTaskCreate()啟動相應的任務,該任務每完成一次發送就調用OS 函數OSTimeDlyHMSM( )掛起一定的時間,這個時間就是主設備對這個DAQ_List 要求的發送周期。在收到主設備要求停止某DAQ_List 命令時,調用OS 函數OSTaskDel( )函數刪除該任務。

(1)Command 處理機

Command 處理機主要是獲取并解讀主設備的CCP 命令,并執行該命令;命令執行完成后,向主設備發送應答;若執行時出錯,應答中向主設備報錯;若主設備命令要求對DAQ進行操作,則將該操作傳達給DAQ 處理機,由DAQ 處理機完成DAQ 操作。

Command 處理機由一個RTOS 任務來完成,其示意性代碼如下,GetMsg 函數為CAN 驅動程序的接收消息函數,調用此函數則等待獲取CAN 端口接收到的消息幀。一旦接收到新的消息幀則函數返回,用戶可通過&msg_command 獲取該消息幀的內容。

void task (void * data) {

for( ; ; ) {

GetMsg(&msg_command); //等待并獲取一個CCP 命令

CCP_Command (&msg_command); //將命令送給CCP 命令處理函數

}

}

(2)DAQ 處理機

DAQ 處理機的任務是根據主設備的需要,定時向CAN 總線上發送DAQ 數據。它由啟動從設備的DAQ 發送、停止從設備的DAQ 發送、執行DAQ 循環發送的任務3 個部分構成。

啟動或停止從設備的 DAQ 發送,由Command 處理機調用函數Start_DAQ (DAQ List

number ,)和Stop_DAQ (DAQ List number)來完成,該函數啟動或停止相應的DAQ 發送任務,

其示意性代碼如下:

Start_DAQ(INT8U DAQ_List_num) { //啟動第n 個DAQ_List

DAQ_List[n].Started = 1;

DAQ_List[n].Prepared = 1;

OSTaskCreate (第n 個DAQ_List 的任務); //調用系統函數,創建DAQ 發送任務,

并使任務進入調度

}}

Stop_DAQ(INT8U DAQ_List_num) { //停止第n 個DAQ_List

DAQ_List[n].Started = 0;

DAQ_List[n].Prepared = 0;

OSTaskDel (第n 個DAQ_List 的任務); //調用系統函數,刪除DAQ 發送任務

}

執行DAQ 循環發送的任務,需要按照ODT 設置把DAQ 數據發送到CAN 總線上,同時需要按照DAQ 周期要求循環執行,該任務示意性代碼如下:

void DAQ_task ( ) {

for( ; ; ) {

CCP.Upload(0); //根據ODT 設置把DAQ 數據發送到CAN 總線上

OSTimeDlyHMSM(Period); //調用RTOS 函數,等待一個周期的時間

}

}

5 結束語

經過多次反復不斷的實際調試,此 CCP 軟件程序在系統上運行穩定可靠,實現了基于MC9S12DP256 上的FLASH 區的標定。

這種采用環形緩沖區以及結合實時操作系統的 CCP 軟件程序設計,有效的避免在ECU標定過程中數據的丟失,并可以對多個ECU 同時進行在線標定,具有很強的實用價值。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51170

    瀏覽量

    427227
  • 控制器
    +關注

    關注

    112

    文章

    16445

    瀏覽量

    179441
  • 操作系統
    +關注

    關注

    37

    文章

    6892

    瀏覽量

    123742
收藏 人收藏

    評論

    相關推薦

    嵌入式實時操作系統μC/OS-IIS12單片機上的移植

    實現了μC/OS-II操作系統在MC9S12DG128上的移植。通過μC/OS-II
    發表于 03-08 13:44

    μC/OS-II是什么?μC/OS-II有哪些應用?

    μC/OS-II的原理是什么?如何去改進μC/OS-II的調度算法?μC/OS-II有哪些應用?
    發表于 04-26 07:17

    如何實現μC/OS-II系統的移植?

    如何實現μC/OS-II系統的移植?
    發表于 04-28 06:01

    MC9S12DP256具有哪些功能特點應用?

    MC9S12DP256的功能特點是什么?MC9S12DP256在汽車電子中的應用是什么?
    發表于 05-17 06:48

    基于μC/OS-II的嵌入式音頻系統設計

    基于μC/OS-II的嵌入式音頻系統設計 Design of Embedded Audio Frequency System Based on μC/OS-II
    發表于 03-16 11:10 ?19次下載

    汽車ECU標定系統CCP 軟件實現

    摘要:CCP 協議是一種CAN 總線標定匹配協議。本文簡單介紹該協議的基本原理,以及一種基于該協議的汽車ECU 標定系統的實現方法。最后,結合MC9S12DP256 芯片以及μ
    發表于 05-16 20:10 ?47次下載
    汽車ECU標定系統<b class='flag-5'>CCP</b> <b class='flag-5'>軟件</b>的<b class='flag-5'>實現</b>

    μC/OS-II在PC機上移植的設計與實現

    本文介紹了μC/OS-II移植到PC機上的過程,使μC/OS-II應用系統程序在PC機上脫離DOS或Windows環境運行。著重介紹了Bootloader引導程序和EXE程序啟動代碼的
    發表于 09-02 08:51 ?14次下載

    HCS12微控制器MC9S12DP256使用指南 ppt

    HCS12微控制器MC9S12DP256 第一步: 1) HCS12 技術概述2) Operating Modes工作模式3) Resource  Mapping資源映射4) External Bus Interf
    發表于 01-11 18:00 ?79次下載

    基于MC9S12DP256的AMT系統的設計

    AMT(機械式自動變速器)是在機械式變速器的基礎上發展起來的一種自動變速器,文章對其工作原理及結構組成進行了簡要介紹,并且完成了以MC9S12DP256微控制器為核心的電子控
    發表于 07-13 17:44 ?47次下載

    μC/OS-IIS3C44BOX處理器上的移植

     摘要:介紹實時操作系統μC/OS-II的特點和內核結構,給出μC/OS-II在Samsung嵌入式S3C44BOX ARM7
    發表于 03-11 12:39 ?1341次閱讀
    μ<b class='flag-5'>C</b>/<b class='flag-5'>OS-II</b>在<b class='flag-5'>S3C</b>44BOX處理器上的移植

    基于MC9S12DP256的轎車ABS/ASR集成控制系統

    ]摘 要:介紹了基于Motorola公司新一代HSC12系列16位MCU——MC9S12DP256微處理器開發的轎車ABS/ASR集成
    發表于 04-15 16:35 ?791次閱讀
    基于<b class='flag-5'>MC9S12DP256</b>的轎車ABS/ASR集成控制系統

    μC/OS-II在EP7312上的移植

    μC/OS-II在EP7312上的移植首先介紹μC/OS-II操作系統的特點,重點分析μC/OS-II
    發表于 06-16 11:24 ?1171次閱讀
    μ<b class='flag-5'>C</b>/<b class='flag-5'>OS-II</b>在EP7312上的移植

    縮短實時操作系統μC/OS-II中斷關閉時間的方法

    該方面的實現,提高了μC/OS-II的性能,擴大了μC/OS-II的應用范圍,使得單邊及工程師能更好的利用μ
    發表于 05-06 11:43 ?1177次閱讀
    縮短實時操作系統μ<b class='flag-5'>C</b>/<b class='flag-5'>OS-II</b>中斷關閉時間的方法

    基于MC9S12DP256 微處理器的轎車集成電控系統

    本文論述了基于 MC9S12DP256 微處理器開發的轎車 ABS/ASR/ACC 集成電控系統。進行了 ABS、ASR、ACC 控制系統集成的嘗試,著重描述了如何實現電子控制單元中硬件電路和軟件
    發表于 09-08 14:40 ?10次下載
    基于<b class='flag-5'>MC9S12DP256</b> 微處理器的轎車集成電控系統

    摩托羅拉MC9S12DP256單片機結構、功能特點及在汽車領域的應用分析

    介紹了摩托羅拉16位單片機MC9S12DP256的結構、特點及其區別于其它單片機的優勢。通過MC0S12DP256在汽車電子門控汽車電子系統的應用實例,簡單介紹了MC9S12DP256單片機在汽車電子領域的應用方法。
    發表于 04-06 10:37 ?3960次閱讀
    摩托羅拉<b class='flag-5'>MC9S12DP256</b>單片機結構、功能特點及在汽車領域的應用分析
    加州百家乐的玩法技巧和规则| 游戏房百家乐官网赌博图片| 998棋牌游戏下载| 富田太阳城二期| 大发888娱乐代理| bet365贴吧| 赌场风云主题曲| 兰西县| 百家乐官网娱乐城优惠| 百家乐官网必学技巧| 定做百家乐官网桌子| 御匾会百家乐官网的玩法技巧和规则| 百家乐官网筹码防伪| 百家乐双倍派彩的娱乐城| 百家乐稳赢赌法| 百家乐百胜注码法| 去澳门百家乐的玩法技巧和规则 | 怎样玩百家乐官网才能| 首席百家乐官网的玩法技巧和规则| 三元玄空24山坐向| 百家乐玩法注意事项| 华侨人百家乐的玩法技巧和规则 | 乐众国际| 军事| 百家乐官网在线娱乐网| 百家乐游戏机子| 皇冠百家乐的玩法技巧和规则| 大发888娱乐场存款| 十三张百家乐的玩法技巧和规则| 大发888游戏平台hplsj| 金城百家乐官网玩法| 百家乐官网单机破解版| 百家乐最好的投注法| 威尼斯人娱乐场安全吗| 千亿娱乐网| 百家乐官网那个平台好| 十六浦百家乐官网的玩法技巧和规则 | 百家乐论坛官网| bet365百家乐| 百家乐官网网络赌博真假| 百家乐游戏运营|