999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CAN總線的ECAN模塊設計

2020-06-13 07:11:40張席旗白創(chuàng)
電子技術與軟件工程 2020年2期
關鍵詞:設計

文/張席旗 白創(chuàng)

(長沙理工大學物理與電子科學學院 湖南省長沙市 410114)

CAN控制器局域網(wǎng)[1-2](Controller Area Network)是一種高抗干擾性、高可靠性、高實時性和高性價比的現(xiàn)場總線[3]之一,它能有效地提供分布式實時控制[4],且具有非常高的安全級別[5],其通信速率可達1Mbps[6]。因此廣泛應用于汽車、工業(yè)自動化、數(shù)字信號處理(DSP)等領域[7-8]。

在傳統(tǒng)的CAN模塊設計中,會有傳輸速率較慢、傳輸資源較少、傳輸時間不確定、抗干擾性較弱等缺陷。例如,在基于單片機的CAN模塊[9]會出現(xiàn)傳輸數(shù)據(jù)較少和抗干擾性較弱的現(xiàn)象。在基于CPI系統(tǒng)總線的3U結構的CAN模塊[10]其設計上采用雙口RAM的緩沖區(qū)結構,雖然克服了丟幀現(xiàn)象,但是傳輸速率不快。本文所設計的ECAN模塊,帶有32個消息郵箱且每個郵箱都帶有時間戳計數(shù)器寄存器以及消息對象超時寄存器,這樣總線傳輸?shù)臄?shù)據(jù)量更大、速率更快以及通信更加靈活可靠。

1 ECAN模塊設計

1.1 ECAN模塊

ECAN模塊是與CAN2.0B標準協(xié)議完全兼容。ECAN模塊是帶有32個完全可配置的郵箱和定時郵遞(time-stamping)功能的增強型CAN總線模塊,它能夠實現(xiàn)靈活穩(wěn)定的串行通信接口。與其它的CAN模塊相比,它主要增加了郵箱的數(shù)量、時間標識和超時功能。ECAN總線模塊框圖如圖1所示。

ECAN控制器的內部是32位的,主要由以下幾部分構成:

(1)CAN協(xié)議內核(CPK);

(2)消息控制器:存儲器管理單元(MMU)、CPU接口、接收控制單元(接收濾波)和定時器管理單元;可以存儲32個消息的郵箱存儲器;控制和狀態(tài)控制器。

CAN 協(xié)議內核(CPK)的兩個功能:解碼在CAN總線上接收到的所有消息,并把這些消息轉移到接收緩沖器;根據(jù)CAN協(xié)議傳輸CAN總線上的消息。

CAN控制器的消息控制器是負責確認CPK接收到的消息是否被CPU使用還是被丟棄。

1.2 ECAN模塊設計

本文所設計的ECAN模塊硬件電路代碼主要由ecan_rece、ecan_regs、ecan_txd、ecan_rxd四部分組成。其中ecan_rece主要是根據(jù)CAN協(xié)議對總線上接收到的消息和所需要發(fā)送的消息按照協(xié)議進行處理;ecan_regs模塊主要用于控制狀態(tài)寄存器進行相關處理以及對于郵箱空間的讀寫訪問;ecan_txd模塊用于將需要發(fā)送的消息發(fā)送至CAN總線;ecan_rxd模塊主要用于接收CAN總線的數(shù)據(jù)并將數(shù)據(jù)傳遞給ecan_rece模塊。ECAN硬件設計模塊結構圖如圖2所示。

圖1:ECAN總線模塊框圖

圖2:ECAN硬件設計模塊結構圖

1.2.1 ecan_rece模塊

圖3:時間標識功能流程圖

圖4:消息發(fā)送或接收超時功能流程圖

圖5:初始化進程流程圖

ecan_rece模塊接收到有效的消息后,對消息進行解碼分析,確定是否將接收到的消息存儲到郵箱存儲器中。接收控制單元檢查消息的狀態(tài)、標識符和所有消息對象的濾波,確定相應郵箱的位置,接收到的消息經(jīng)過濾波后存放到第一個郵箱。如果接收控制單元不能找到存放接收消息的有效地址,那么接收到的消息將會被丟失。

圖6:ECAN模塊數(shù)據(jù)發(fā)送流程圖

圖7:ECAN模塊數(shù)據(jù)接收流程圖

圖8:數(shù)據(jù)幀格式

1.2.2 ecan_regs模塊

ecan_regs模塊包含控制狀態(tài)寄存器、郵箱讀寫配置寄存器以及ECAN模塊配置、中斷等各種寄存器。其中ECAN模塊的時間標識功能以及超時功能就在此模塊進行設計。

ECAN模塊每個郵箱內部都有消息對象時間戳寄存器(MOTS),當消息成功發(fā)送或者接收時,該寄存器會分別記錄下當時消息發(fā)送和接收時刻時間戳計數(shù)器(CANTSC)的值。這樣通過計算消息發(fā)送和成功接收到的差值就可以得到消息傳輸?shù)臅r間。時間標識功能流程圖如圖3所示。

圖9:ECAN數(shù)據(jù)發(fā)送接收

圖10:ECAN數(shù)據(jù)發(fā)送移位

圖11:代碼覆蓋率

ECAN模塊的每個郵箱內部都有消息超時寄存器(MOTO),當發(fā)送消息或接收消息時,消息超時寄存器(MOTO)中的值會與時間戳計數(shù)器(CANTSC)中的值進行比較。若時間戳計數(shù)器(CANTSC)中的值大于消息超時寄存器(MOTO)中的值,則超時控制寄存器(CANTOC)以及超時狀態(tài)寄存器(CANTOS)會被置1,此時表示發(fā)送消息或接收消息已超時。消息發(fā)送或接收功能流程圖如圖4所示。

1.2.3 ecan_txd模塊與ecan_rxd模塊

當需要發(fā)送消息時,消息控制器將要發(fā)送的消息傳送到ecan_txd模塊,以便在下一個總線空閑狀態(tài)開始發(fā)送該信息。當有多個消息需要發(fā)送時,ecan_rece模塊將準備發(fā)送消息中優(yōu)先級最高的傳送到ecan_txd模塊。如果兩個郵箱有相同的優(yōu)先級,選擇郵箱編號大的郵箱內存放的消息。

當需要接收消息時,消息控制器將接收到的消息傳送給ecan_rxd模塊,然后ecan_rxd模塊對接收到的數(shù)據(jù)進行位填充、錯誤檢測等處理,以供CPU讀取。

2 ECAN模塊功能的實現(xiàn)

2.1 ECAN模塊初始化

在使用CAN模塊前必須將其初始化。將主控制寄存器的更改配置請求位CCR(CANMC.12)置1,表示啟動初始化配置模式;將錯誤和狀態(tài)寄存器的更改配置使能位CCE(CANES.4)置1,激活初始化配置模式。當CCE和CCR都為1時,ECAN控制器的位定時參數(shù)位被使能,配置位定時參數(shù)完成后;CCR置0,ECAN模塊進入正常模式。ECAN模塊初始化進程流程圖如圖5所示。

2.2 ECAN模塊的數(shù)據(jù)發(fā)送

CPU將需要發(fā)送的數(shù)據(jù)先存放到ECAN模塊的發(fā)送郵箱。使能郵箱使能位CANME[n],當數(shù)據(jù)和標識符寫入發(fā)送郵箱后,此時將相應的發(fā)送請求設置位CANTRS[n]置位,消息便會發(fā)送出去。ECAN模塊數(shù)據(jù)發(fā)送流程圖如圖6所示。

2.3 ECAN模塊的數(shù)據(jù)接收

ECAN模塊中數(shù)據(jù)以報文的形式進行傳輸,當?shù)竭_一個節(jié)點時ECAN控制器會將接收到的報文的標識符與ECAN控制器內的各個郵箱標識符相比較;若報文標識符與ECAN控制器內相應的郵箱標識符相匹配,則ECAN控制器將相應的接收消息掛起位CANRMP[n]置位,并產(chǎn)生中斷;若報文標識符與ECAN控制器內所有的郵箱標識符都不匹配,則ECAN控制器不接收此報文。ECAN模塊數(shù)據(jù)接收流程圖如圖7所示。

3 仿真與結果

3.1 ECAN模塊數(shù)據(jù)傳輸格式

ECAN模塊的硬件設計是采用Verilog HDL硬件語言進行描述,在cadence環(huán)境下調用SimVision進行仿真。ECAN模塊中有兩個CAN控制器,分別為CANA和CANB。選擇CANA為接收,CANB為發(fā)送,CANB按照CAN協(xié)議向CANA中發(fā)送如圖8所示的標準數(shù)據(jù)幀。

在此次仿真中,前一段時間是在進行ECAN各個寄存器的配置,配置完成后,檢測到起始幀SOF后開始發(fā)送數(shù)據(jù)。選擇發(fā)送一個ID為00000000001(按照CAN協(xié)議的規(guī)定仲裁域部分為12位,前11位為ID第12位為RTR位,數(shù)據(jù)幀中RTR位為0)的數(shù)據(jù)域為每字節(jié)8位的8字節(jié)數(shù)據(jù)的標準幀。如圖9所示,數(shù)字域為每字節(jié)8位的8字節(jié)的標準數(shù)據(jù)幀共108位,因為幀結尾是7位高電平,所以在設計中發(fā)送完ACK低電平之后,總線就會拉高。

每當信號data_rlf上升沿來到時send_data經(jīng)過一個周期的延時向左移一位,總共移位83次,CRC校驗域是通過算法計算所得。按照CAN協(xié)議中的CRC填充準則,當總線上出現(xiàn)每五個相同電平時,總線會發(fā)送一個與之前相反的填充電平,這樣避免總線上出現(xiàn)太多連續(xù)相同的電平時,使收發(fā)雙方失步,導致仿真錯誤。在圖9中CANA接收的數(shù)據(jù)的后四位為CRC計算值。CANBTX向CANARX發(fā)送時同時也會給CANBRX發(fā)送,當CANARX和CANBRX接收到數(shù)據(jù)相同時則會產(chǎn)生一個ACK應答信號(低電平)。當CANBTX發(fā)送的數(shù)據(jù)與CANARX接收的數(shù)據(jù)一樣時,CANATX也會給一個ACK應答信號。ECAN數(shù)據(jù)發(fā)送移位仿真圖如圖10所示。

3.2 代碼覆蓋率的測試

利用Cadence軟件中的NC-Verilog編譯器,來測試代碼覆蓋率。仿真結果如圖11所示,結果顯示所設計的代碼的覆蓋率均達到100%。

4 結論

本文設計的ECAN模塊,完全兼容CAN2.0B協(xié)議,通過仿真驗證ECAN模塊中CANB發(fā)出的數(shù)據(jù)CANA成功收到且CRC校驗正確,ACK應答信號在CANA收到正確的數(shù)據(jù)后成功拉低,最后成功實現(xiàn)了ECAN模塊的通信。

猜你喜歡
設計
二十四節(jié)氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統(tǒng)設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發(fā)生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 国产人人乐人人爱| 国产一级α片| 91精品啪在线观看国产| 日本不卡在线播放| 91美女视频在线| 高清久久精品亚洲日韩Av| 国产精品亚洲片在线va| 国产国拍精品视频免费看| 色综合天天综合中文网| 国产成+人+综合+亚洲欧美| 久久这里只有精品国产99| 欧美丝袜高跟鞋一区二区| 精品三级在线| 91精品视频网站| 国产区人妖精品人妖精品视频| 色爽网免费视频| 无码国产伊人| 亚洲女同欧美在线| 欧美高清视频一区二区三区| 久久99国产精品成人欧美| 精品天海翼一区二区| 日韩在线成年视频人网站观看| 99九九成人免费视频精品| 国产大全韩国亚洲一区二区三区| 在线视频亚洲色图| 精品一区二区三区水蜜桃| 性网站在线观看| 成年女人a毛片免费视频| 国产免费怡红院视频| 国产又大又粗又猛又爽的视频| 久久久久久久久久国产精品| 国产精品护士| 日韩专区欧美| 欧美激情第一欧美在线| 亚洲第一中文字幕| 久久婷婷六月| 九九精品在线观看| 久久久久免费看成人影片| 宅男噜噜噜66国产在线观看| 久久综合干| 在线观看免费人成视频色快速| 国产精品林美惠子在线播放| 中文字幕人成乱码熟女免费| 久久国产av麻豆| 亚洲一区二区三区在线视频| 久久精品人人做人人综合试看| 日本亚洲成高清一区二区三区| yjizz国产在线视频网| 日韩成人在线视频| 伊人久久婷婷五月综合97色| 国产内射一区亚洲| 18禁不卡免费网站| 中文字幕在线播放不卡| 精品国产免费第一区二区三区日韩| 免费不卡在线观看av| 色精品视频| 8090成人午夜精品| 国国产a国产片免费麻豆| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产成人精品视频一区二区电影| 国产在线视频二区| 欧美中文字幕一区| 亚洲精品无码日韩国产不卡| 狠狠亚洲婷婷综合色香| 91丝袜乱伦| 波多野结衣一区二区三视频| 亚洲永久视频| 国产精品免费电影| 91美女在线| 国产精品成人第一区| 国产又粗又猛又爽| 精品福利视频导航| 日本免费福利视频| 国内毛片视频| 国产精品免费久久久久影院无码| 久久精品女人天堂aaa| 国产美女无遮挡免费视频| 成人在线观看一区| 亚洲bt欧美bt精品| 欧洲欧美人成免费全部视频| 国产成人精品日本亚洲77美色| 97色伦色在线综合视频|