基于RealView MDK的CAN總線(xiàn)仿真研究

發(fā)布時(shí)間:2010-12-8 20:45    發(fā)布者:designer
關(guān)鍵詞: CAN , MDK , RealView , 仿真
RealView MDK是ARM公司的產(chǎn)品,被全球超過(guò)10萬(wàn)的嵌入式開(kāi)發(fā)工程師驗證和使用,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開(kāi)發(fā)工具。RealView MDK集成了業(yè)內最領(lǐng)先的技術(shù),包括μVision3集成開(kāi)發(fā)環(huán)境與RealView編譯器。支持ARM7、ARM9和最新的Cortex-M3核處理器,自動(dòng)配置啟動(dòng)代碼,集成Flash燒寫(xiě)模塊,強大的Simulation設備模擬、性能分析等功能。

當前多數基于A(yíng)RM的開(kāi)發(fā)工具都有仿真功能,但是僅僅局限于對內核指令集的仿真。而RealView MDK的設備模擬器可以仿真整個(gè)目標硬件,包括快速指令集仿真、外部信號和I/O仿真、中斷過(guò)程仿真、片內外圍設備仿真等。開(kāi)發(fā)工程師在無(wú)硬件的情況下即可開(kāi)始軟件開(kāi)發(fā)和調試,使軟硬件開(kāi)發(fā)同步進(jìn)行,大大縮短開(kāi)發(fā)周期。而一般的ARM開(kāi)發(fā)工具僅提供指令集模擬器,只能支持ARM內核模擬調試。

CAN總線(xiàn)即控制器局域網(wǎng)(Controller Area Net)是一種現場(chǎng)總線(xiàn),主要用于各種過(guò)程檢測及控制。CAN最初是由德國B(niǎo)OSCH公司為汽車(chē)監測和控制而設計的,目前CAN已逐步應用到其它工業(yè)控制中,現已成為ISO-11898國際標準。

1 LPC2378的CAN總線(xiàn)控制器說(shuō)明

LPC2378是NXP公司推出的ARM7微控制器,它包含有2路獨立的CAN模塊,其CAN控制器的特點(diǎn)是:兼容CAN規范2.0B,多主機結構,帶有無(wú)破壞性的位仲裁,由報文標識符(1l位或29位)確定總線(xiàn)訪(fǎng)問(wèn)優(yōu)先級,可編程的傳輸速率(高達1Mb/s),多播和廣播報文功能,數據長(cháng)度從0到8字節,強大的錯誤處理能力,非歸零(NRZ)編碼/譯碼,帶有位填充。

每個(gè)CAN總線(xiàn)控制器包括:APB總線(xiàn)接口、驗收濾波器接口、向量中斷控制器接口、通用狀態(tài)寄存器接口,這些接口連接芯片內部;還包括接口管理單元、3個(gè)發(fā)送緩沖區、2個(gè)接收緩沖器、錯誤管理邏輯單元、位時(shí)序邏輯、位流處理。芯片外部外接CAN總線(xiàn)收發(fā)器。CAN總線(xiàn)控制器控制著(zhù)數據的發(fā)送和接收。




CAN總線(xiàn)發(fā)送數據的過(guò)程為:CPU通過(guò)內部總線(xiàn)向CAN控制器的發(fā)送寄存器里填寫(xiě)需要發(fā)的數據,然后啟動(dòng)CAN控制器的發(fā)送使能,發(fā)送的數據分別經(jīng)過(guò)位流管理器(變成在總線(xiàn)上發(fā)送的二進(jìn)制碼)、錯誤管理邏輯(負責檢測總線(xiàn)狀態(tài)及發(fā)送是否出現錯誤)及位時(shí)序邏輯(管理數據在總線(xiàn)上的發(fā)送時(shí)序)、CAN收發(fā)器(負責把位流數據轉換成CAN總線(xiàn)夠傳輸的差分電平),這樣就完成了一幀CAN數據的發(fā)送。

CAN總線(xiàn)的接收與CAN數據的發(fā)送是一個(gè)相反的過(guò)程,當CAN收發(fā)器檢測到CAN總線(xiàn)上有數據時(shí),CAN收發(fā)器把CAN總線(xiàn)上的差分信號轉換成位流數據,經(jīng)過(guò)錯誤管理器及位時(shí)序邏輯單元對位數據流和時(shí)序進(jìn)行檢查,再經(jīng)過(guò)位流管理器把位流數據轉換成字節數據并存放到接收緩沖器中,當一幀數據接收完了之后則由接收緩沖器產(chǎn)生數據接收中斷(通知CPU已經(jīng)接收到一幀新數據),并將產(chǎn)生的各種狀態(tài)通過(guò)狀態(tài)寄存器的值來(lái)表示。

2 系統軟件設計

本文所述系統實(shí)現的功能為:LPC2378的兩個(gè)CAN控制模塊各作為獨立的CAN總線(xiàn)節點(diǎn),實(shí)現它們之間的通信。為構建一個(gè)完整的CAN總線(xiàn)仿真環(huán)境,軟件設計所實(shí)現的功能為:仿真一A/D轉換通道,A/D轉換后的數值傳給CAN模塊2,CAN模塊l接收來(lái)自CAN模塊2的數據。數據傳送通道為A/D轉換→CAN2→CANl。

2.1 定義一幀CAN數據的格式









2.2 初始化CAN控制器





2.3 中斷服務(wù)程序

每當發(fā)送完一幀數據,或接收到一幀數據時(shí)都觸發(fā)中斷。





2.4 主程序流程圖




3 仿真結果

編譯并運行程序,打開(kāi)CAN總線(xiàn)的Communication菜單項,可以看到圖3所示的仿真結果。其中Number表示CAN消息的序號;States表示CAN消息的時(shí)間戳,它們是使用CPU狀態(tài)標記的;#表示是哪一個(gè)CAN模塊;ID表示CAN消息的標識,在發(fā)送或接收時(shí)使用;Dir表示CAN消息的傳送方向;Xmit表示CAN控制器發(fā)送消息;Rec表示CAN控制器接受消息;Len表示一幀中數據場(chǎng)長(cháng)度;data表示所傳送的具體數據場(chǎng)。

從仿真結果中可以看出,CAN模塊2發(fā)送數據(Xmit),CAN模塊1接收數據(Rec),數據場(chǎng)長(cháng)度3個(gè)字節,達到了預期的仿真效果。




4 結束語(yǔ)

RealView MDK具有強大的仿真功能,不僅能仿真CAN總線(xiàn),還能仿真GPIO、I2C、SPI、A/D、D/A轉換等。在嵌入式系統的前期開(kāi)發(fā)中,我們可以利用其仿真功能,不受硬件和地點(diǎn)的限制,使硬件和軟件的開(kāi)發(fā)同步進(jìn)行,有效縮短產(chǎn)品的設計開(kāi)發(fā)周期。
本文地址:http://selenalain.com/thread-45251-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页