專利名稱:一種車用ttcan通訊網(wǎng)絡(luò)的仿真方法
技術(shù)領(lǐng)域:
一種新型車用TTCAN通訊網(wǎng)絡(luò)仿真方法,尤其適用于汽車用TTCAN網(wǎng)絡(luò)協(xié)議的制訂、仿真與測試,屬于工業(yè)現(xiàn)場總線技術(shù)領(lǐng)域。
背景技術(shù):
現(xiàn)代汽車采用了大量分布式控制器完成零部件的控制,各個控制器之間通過總線進行通訊,總線技術(shù)相比于傳統(tǒng)的直接連接,具有容錯性好、擴展性好、接線簡單等優(yōu)點。CAN總線是專為汽車設(shè)計的局部總線技術(shù),是汽車內(nèi)部高速通訊的主要實現(xiàn)方式之一。
TTCAN協(xié)議是建立在傳統(tǒng)CAN協(xié)議上的一種時間觸發(fā)的通訊協(xié)議。相比傳統(tǒng)的CAN協(xié)議,TTCAN具有實時性高、可靠性好,數(shù)據(jù)量大,信號楨中數(shù)據(jù)位數(shù)可變等特點。TTCAN協(xié)議適合新能源汽車,如純電動汽車、內(nèi)燃機-電機混合動力汽車和燃料電池汽車通訊數(shù)據(jù)量大、實時性要求高的需求,也適用于對實時性要求較高的傳統(tǒng)汽車的內(nèi)部通訊。
在傳統(tǒng)的硬件在環(huán)仿真中,CAN信號部分多采用CAN卡發(fā)送的方式,通過上位機對CAN信號進行配置,通過操作CAN卡的驅(qū)動進行發(fā)送。這種方式中的CAN卡及對應(yīng)軟件價格昂貴,CAN信號的發(fā)送受到上位機CPU性能和操作系統(tǒng)的影響,而且CAN卡往往還要承擔(dān)CAN接收的任務(wù),同時發(fā)送和接收會大大影響到CAN信號發(fā)送的時間準(zhǔn)確性。使用單片機進行CAN信號發(fā)送的優(yōu)勢在于不占用CAN卡資源,且不受上位機操作系統(tǒng)的循環(huán)時間制約,實時性好。
在傳統(tǒng)的使用單片機進行CAN信號模擬的方案中,多數(shù)是針對部分部件,而不是整車網(wǎng)絡(luò)的信號模擬,并且信號形式單一。本發(fā)明使用計算能力強大的32位單片機對發(fā)送信息進行計算,能夠?qū)崿F(xiàn)發(fā)送信號的復(fù)雜變化,采用驅(qū)動與協(xié)議分離的結(jié)構(gòu)進行CAN信號發(fā)送,在中斷中完成信號發(fā)送,并在發(fā)送程序中集成了協(xié)議的讀取和信號屏蔽功能,解決了使用單片機模擬TTCAN協(xié)議配置復(fù)雜,程序可讀性差的問題,能夠?qū)崿F(xiàn)整車級別的TTCAN網(wǎng)絡(luò)模擬。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對目前車用TTCAN通訊網(wǎng)絡(luò)協(xié)議的設(shè)計以及基于TTCAN通訊協(xié)議的控制器的開發(fā)需求,提供一種新的基于32位單片機和TTCAN總線的整車通訊網(wǎng)絡(luò)仿真程序,以滿足協(xié)議制訂和控制器的開發(fā)需求。
本發(fā)明提出了一種車用TTCAN通訊網(wǎng)絡(luò)的仿真方法,其特征在于A、采用具有CAN控制器、內(nèi)部時鐘以及獨立中斷處理單元的32位單片機,工作頻率最高可達(dá)到40~56MHz。
B、將程序?qū)懭雴纹瑱C之后,由單片機實現(xiàn)TTCAN信號的發(fā)送;C、其步驟為(13)關(guān)閉中斷;(14)進行中斷控制器、CAN發(fā)送驅(qū)動器、TPU的初始化,所述的初始化指將配置文件中設(shè)置的時鐘頻率、對應(yīng)中斷程序名、中斷級別寫入對應(yīng)的專用寄存器;(15)開啟中斷;(16)查詢第一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括TTCAN信號ID、信號數(shù)據(jù)位長度、信號的發(fā)送時序、信號中數(shù)據(jù)區(qū)的內(nèi)容;(17)配置CAN發(fā)送模塊將信號ID、數(shù)據(jù)位長度、信號中數(shù)據(jù)區(qū)的內(nèi)容寫入到CAN發(fā)送寄存器;(18)配置TPU模塊從步驟(4)的配置文件的TTCAN時序中讀取后一個信號的發(fā)送時序,將其與當(dāng)前信號的發(fā)送時序做差,并將計算結(jié)果寫入TPU輸出比較(OC)寄存器;(19)當(dāng)TPU定時器觸發(fā)中斷之后,進入中斷程序,讀取中斷屏蔽變量,此時TPU自動停止工作;(20)查詢當(dāng)前信號是否被屏蔽,如果結(jié)果為“是”,則跳到第10步,否則執(zhí)行下一步;(21)將CAN_Send_ONCE寫入CAN收發(fā)控制寄存器,發(fā)送當(dāng)前信號,此時完成了對應(yīng)當(dāng)前TTCAN信號的仿真,CAN網(wǎng)絡(luò)上產(chǎn)生了對應(yīng)于當(dāng)前信號ID、信號時序和信號數(shù)據(jù)區(qū)內(nèi)容的CAN信號,轉(zhuǎn)入第10步;(22)讀取配置文件并計算下一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括信號ID、數(shù)據(jù)位長度、信號的發(fā)送時序、信號中數(shù)據(jù)區(qū)的內(nèi)容;(23)配置CAN發(fā)送模塊將信號ID、數(shù)據(jù)位長度、信號中數(shù)據(jù)區(qū)的內(nèi)容寫輸入到CAN發(fā)送寄存器;(24)將下一個信號的發(fā)送時序與當(dāng)前信號的發(fā)送時序做差,并將計算結(jié)果輸入到TPU輸出比較(OC)寄存器;(13)啟動TPU輸出比較(OC)寄存器并清除中斷標(biāo)志位,回到第7步。
本發(fā)明運用先進的TTCAN協(xié)議技術(shù),結(jié)合MPC5xx開發(fā)平臺,實現(xiàn)了一種新型車用TTCAN通訊網(wǎng)絡(luò)仿真程序,其主要效果有1、采用32位單片機,頻率為40MHz到56MHz,計算能力強。
2、采用配置文件的方式寫入CAN協(xié)議,與底層驅(qū)動程序分離,協(xié)議可讀性強,修改簡便。
3、將協(xié)議讀取與信號屏蔽功能集成到發(fā)送程序中,程序結(jié)構(gòu)清晰,易于修改和維護。
4、使用單片機時鐘進行發(fā)送定時,并使用中斷程序進行信號發(fā)送,不依賴上位機資源,通訊實時性好,通訊時間精度達(dá)μs級。
5、配置后的單片機可以作為發(fā)送部件單獨工作,體積小、供電簡單、耗電少、便于攜帶、應(yīng)用場所靈活。
6、配置和使用過程無需借助專用CAN卡,成本低;易操作。
圖1是本發(fā)明一種車用TTCAN通訊網(wǎng)絡(luò)的仿真方法流程圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明具體實施做進一步說明。
實施例1(VCU+MCU)一種車用TTCAN通訊網(wǎng)絡(luò)的仿真方法,工作方式如下1.關(guān)閉中斷;2.進行中斷控制器、CAN發(fā)送驅(qū)動器、TPU的初始化,所述的初始化指將配置文件中設(shè)置的時鐘頻率1MHz;對應(yīng)中斷程序名CAN_ISR、中斷級別9寫入對應(yīng)的專用寄存器;3.開啟中斷;4.查詢第一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括TTCAN信號ID—1820A7A3、信號數(shù)據(jù)位長度—6、信號的發(fā)送時序—2250μs、信號中數(shù)據(jù)區(qū)的內(nèi)容—03 E8 9C 4F F8 00;5.配置CAN發(fā)送模塊將信號ID—1820A7A3、信號數(shù)據(jù)位長度—6、信號的發(fā)送時序—2250μs、信號中數(shù)據(jù)區(qū)的內(nèi)容—03 E8 9C 4F F8 00寫入到CAN發(fā)送寄存器;6.配置TPU模塊從步驟(4)的配置文件的TTCAN時序中讀取后一個信號的發(fā)送時序—3200μs,將其與當(dāng)前信號的發(fā)送時序—2250μs做差,并將計算結(jié)果950μs寫入TPU輸出比較(OC)寄存器;7.當(dāng)TPU定時器觸發(fā)中斷之后,進入中斷程序,讀取中斷屏蔽變量,此時TPU自動停止工作;8.查詢當(dāng)前信號是否被屏蔽,如果結(jié)果為“是”,則跳到第10步,否則執(zhí)行下一步;9.將CAN_Send_ONCE寫入CAN收發(fā)控制寄存器,發(fā)送當(dāng)前信號,此時完成了對應(yīng)當(dāng)前TTCAN信號的仿真,CAN網(wǎng)絡(luò)上產(chǎn)生了對應(yīng)于電機控制器的TTCAN仿真信號ID—1820A7A3、信號數(shù)據(jù)位長度—6、信號的發(fā)送時序—2250μs、信號中數(shù)據(jù)區(qū)的內(nèi)容—03 E8 9C 4F F8 00,轉(zhuǎn)入第10步;10.讀取配置文件并計算下一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括信號ID—、數(shù)據(jù)位長度—、信號的發(fā)送時序—、信號中數(shù)據(jù)區(qū)的內(nèi)容—;11.配置CAN發(fā)送模塊將信號ID—CFF03A7、數(shù)據(jù)位長度—8、信號中數(shù)據(jù)區(qū)的內(nèi)容—0064 00 64 0F 93 01 11寫入到CAN發(fā)送寄存器;
12.將下一個信號的發(fā)送時序15000μs與當(dāng)前信號的發(fā)送時序3200μs做差,并將計算結(jié)果—11800μs輸入到TPU輸出比較(OC)寄存器;13.啟動TPU輸出比較(OC)寄存器并清除中斷標(biāo)志位,回到第7步。
實施例2(VCU+FCS+DCC)一種車用TTCAN通訊網(wǎng)絡(luò)的仿真方法,工作方式如下1.關(guān)閉中斷2.進行中斷控制器、CAN發(fā)送驅(qū)動器、TPU的初始化,所述的初始化指將配置文件中設(shè)置的時鐘頻率1MHz;對應(yīng)中斷程序名CAN_ISR、中斷級別9寫入對應(yīng)的專用寄存器;3.開啟中斷;4.查詢第一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括TTCAN信號ID—1810A7A5、信號數(shù)據(jù)位長度—8、信號的發(fā)送時序—0μs、信號中數(shù)據(jù)區(qū)的內(nèi)容—07 6C 3F 4F 9B 09 10 A0;5.配置CAN發(fā)送模塊將信號ID—1810A7A5、信號數(shù)據(jù)位長度—8、信號的發(fā)送時序—0μs、信號中數(shù)據(jù)區(qū)的內(nèi)容—07 6C 3F 4F 9B 09 10 A0寫入到CAN發(fā)送寄存器;6.配置TPU模塊從步驟(4)的配置文件的TTCAN時序中讀取后一個信號的發(fā)送時序—800μs,將其與當(dāng)前信號的發(fā)送時序—0μs做差,并將計算結(jié)果—800μs寫入TPU輸出比較(OC)寄存器;7.當(dāng)TPU定時器觸發(fā)中斷之后,進入中斷程序,讀取中斷屏蔽變量,此時TPU自動停止工作;8.查詢當(dāng)前信號是否被屏蔽,如果結(jié)果為“是”,則跳到第10步,否則執(zhí)行下一步;9.將CAN_Send_ONCE寫入CAN收發(fā)控制寄存器,發(fā)送當(dāng)前信號,此時完成了對應(yīng)當(dāng)前TTCAN信號的仿真,CAN網(wǎng)絡(luò)上產(chǎn)生了對應(yīng)于電機控制器的TTCAN仿真信號ID—1810A7A5、信號數(shù)據(jù)位長度—8、信號的發(fā)送時序—0μs、信號中數(shù)據(jù)區(qū)的內(nèi)容—07 6C 3F 4F 9B 09 10A0,轉(zhuǎn)入第10步;10.讀取配置文件并計算下一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括信號ID、數(shù)據(jù)位長度、信號的發(fā)送時序、信號中數(shù)據(jù)區(qū)的內(nèi)容;11.配置CAN發(fā)送模塊將信號ID—1818A7A4、數(shù)據(jù)位長度—5、信號中數(shù)據(jù)區(qū)的內(nèi)容—1901 90 01 50寫入到CAN發(fā)送寄存器;12.將下一個信號的發(fā)送時序—3200μs與當(dāng)前信號的發(fā)送時序—800μs做差,并將計算結(jié)果—2400μs輸入到TPU輸出比較(OC)寄存器;13.啟動TPU輸出比較(OC)寄存器并清除中斷標(biāo)志位,回到第7步。
實施例3(VCU+DCC+BMS+MCU)
一種車用TTCAN通訊網(wǎng)絡(luò)的仿真方法,工作方式如下1.關(guān)閉中斷2.進行中斷控制器、CAN發(fā)送驅(qū)動器、TPU的初始化,所述的初始化指將配置文件中設(shè)置的時鐘頻率1MHz;對應(yīng)中斷程序名CAN_ISR、中斷級別9寫入對應(yīng)的專用寄存器;3.開啟中斷;4.查詢第一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括TTCAN信號ID—1818A7A4、數(shù)據(jù)位長度—5、信號中數(shù)據(jù)區(qū)的內(nèi)容—19 01 90 01 50;5.配置CAN發(fā)送模塊將信號ID—1818A7A4、數(shù)據(jù)位長度—5、信號中數(shù)據(jù)區(qū)的內(nèi)容—1901 90 01 50寫入到CAN發(fā)送寄存器;6.配置TPU模塊從步驟(4)的配置文件的TTCAN時序中讀取后一個信號的發(fā)送時序—2250μs,將其與當(dāng)前信號的發(fā)送時序—1550μs做差,并將計算結(jié)果—700μs寫入TPU輸出比較(OC)寄存器;7.當(dāng)TPU定時器觸發(fā)中斷之后,進入中斷程序,讀取中斷屏蔽變量,此時TPU自動停止工作;8.查詢當(dāng)前信號是否被屏蔽,如果結(jié)果為“是”,則跳到第10步,否則執(zhí)行下一步;9.將CAN_Send_ONCE寫入CAN收發(fā)控制寄存器,發(fā)送當(dāng)前信號,此時完成了對應(yīng)當(dāng)前TTCAN信號的仿真,CAN網(wǎng)絡(luò)上產(chǎn)生了對應(yīng)于電機控制器的TTCAN仿真信號信號ID—1818A7A4、數(shù)據(jù)位長度—5、信號中數(shù)據(jù)區(qū)的內(nèi)容—19 01 90 01 50,轉(zhuǎn)入第10步;10.讀取配置文件并計算下一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括信號ID、數(shù)據(jù)位長度、信號的發(fā)送時序、信號中數(shù)據(jù)區(qū)的內(nèi)容;11.配置CAN發(fā)送模塊將信號ID—1828A7A2、數(shù)據(jù)位長度—5、信號中數(shù)據(jù)區(qū)的內(nèi)容—1841 A2 46 13寫入到CAN發(fā)送寄存器;12.將下一個信號的發(fā)送時序—3200μs與當(dāng)前信號的發(fā)送時序—2250μs做差,并將計算結(jié)果—950μs輸入到TPU輸出比較(OC)寄存器;13.啟動TPU輸出比較(OC)寄存器并清除中斷標(biāo)志位,回到第7步。
權(quán)利要求
1.一種車用TTCAN通訊網(wǎng)絡(luò)的仿真方法,該方法采用具有CAN控制器、內(nèi)部時鐘以及獨立中斷處理單元的32位單片機,將程序?qū)懭雴纹瑱C之后,由單片機實現(xiàn)TTCAN信號的發(fā)送,其特征在于,該方法包括以下步驟(1)關(guān)閉中斷;(2)進行中斷控制器、CAN發(fā)送驅(qū)動器、TPU的初始化,所述的初始化指將配置文件中設(shè)置的時鐘頻率、對應(yīng)中斷程序名、中斷級別寫入對應(yīng)的專用寄存器;(3)開啟中斷;(4)查詢第一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括TTCAN信號ID、信號數(shù)據(jù)位長度、信號的發(fā)送時序、信號中數(shù)據(jù)區(qū)的內(nèi)容;(5)配置CAN發(fā)送模塊將信號ID、數(shù)據(jù)位長度、信號中數(shù)據(jù)區(qū)的內(nèi)容寫入到CAN發(fā)送寄存器;(6)配置TPU模塊從步驟(4)的配置文件的TTCAN時序中讀取后一個信號的發(fā)送時序,將其與當(dāng)前信號的發(fā)送時序做差,并將計算結(jié)果寫入TPU輸出比較(OC)寄存器;(7)當(dāng)TPU定時器觸發(fā)中斷之后,進入中斷程序,讀取中斷屏蔽變量,此時TPU自動停止工作;(8)查詢當(dāng)前信號是否被屏蔽,如果結(jié)果為“是”,則跳到第10步,否則執(zhí)行下一步;(9)將CAN_Send_ONCE寫入CAN收發(fā)控制寄存器,發(fā)送當(dāng)前信號,此時完成了對應(yīng)當(dāng)前TTCAN信號的仿真,CAN網(wǎng)絡(luò)上產(chǎn)生了對應(yīng)于當(dāng)前信號ID、信號時序和信號數(shù)據(jù)區(qū)內(nèi)容的CAN信號,轉(zhuǎn)入第10步;(10)讀取配置文件并計算下一次發(fā)送信息所需要的參數(shù),所述參數(shù)包括信號ID、數(shù)據(jù)位長度、信號的發(fā)送時序、信號中數(shù)據(jù)區(qū)的內(nèi)容;(11)配置CAN發(fā)送模塊將信號ID、數(shù)據(jù)位長度、信號中數(shù)據(jù)區(qū)的內(nèi)容寫輸入到CAN發(fā)送寄存器;(12)將下一個信號的發(fā)送時序與當(dāng)前信號的發(fā)送時序做差,并將計算結(jié)果輸入到TPU輸出比較(OC)寄存器;(13)啟動TPU輸出比較(OC)寄存器并清除中斷標(biāo)志位,回到第7步。
全文摘要
一種車用TTCAN通訊網(wǎng)絡(luò)仿真方法,尤其適用于汽車用TTCAN網(wǎng)絡(luò)協(xié)議的制訂、仿真與測試,屬于工業(yè)現(xiàn)場總線技術(shù)領(lǐng)域。該方法采用具有CAN控制器、內(nèi)部時鐘以及獨立中斷處理單元的32位單片機,將程序?qū)懭雴纹瑱C之后,由單片機實現(xiàn)TTCAN信號的發(fā)送。本發(fā)明運用先進的TTCAN協(xié)議技術(shù),結(jié)合MPC5xx開發(fā)平臺,實現(xiàn)了一種新型車用TTCAN通訊網(wǎng)絡(luò)仿真程序,計算能力強,與底層驅(qū)動程序分離,協(xié)議可讀性強,修改簡便;易于修改和維護。
文檔編號H04L29/06GK101056242SQ20071009995
公開日2007年10月17日 申請日期2007年6月1日 優(yōu)先權(quán)日2007年6月1日
發(fā)明者包磊, 華劍鋒, 徐梁飛, 李建秋, 歐陽明高 申請人:清華大學(xué)