基于FPGA的CAN總線控制器設(shè)計(jì)
摘要:使用Verilog HDL硬件描述語言完成了對CAN總線控制器的設(shè)計(jì),能夠?qū)崿F(xiàn)符合CAN2.0A協(xié)議的所有功能。本總線控制器的外部接口采用Altera公司開發(fā)的Avalon總線接口,增強(qiáng)了控制器的應(yīng)用靈活性。本設(shè)計(jì)使用Modelsim軟件完成了功能仿真和時(shí)序仿真。
關(guān)鍵詞:CAN總線;控制器;現(xiàn)場可編程門陣列
0 引言
CAN(控制器局域網(wǎng))是一種先進(jìn)的串行通信協(xié)議,由德國BOSCH公司開發(fā),并最終成為國際標(biāo)準(zhǔn)(ISO11898),是國際上使用最廣泛的現(xiàn)場總線之一。目前世界上已有20多家CAN總線控制器生產(chǎn)商,110多種CAN總線控制器芯片和集成CAN總線控制器的微處理器芯片。
由于定制的CAN總線控制器芯片不能嵌入到SoC(片上系統(tǒng))中,而采用分立元器件實(shí)現(xiàn)CAN總線接口,使得系統(tǒng)中器件數(shù)量增加,同時(shí)也增大了系統(tǒng)面積,本文所介紹的CAN總線控制器正是由Verilog HDL語言描述,既可以作為一個(gè)獨(dú)立的設(shè)備,也可以作為一個(gè)模塊集成到FPGA中。
雖然目前國內(nèi)外已有很多人研究或設(shè)計(jì)了CAN總線控制器IP核,但其中大多數(shù)只是對控制器中的某一個(gè)模塊進(jìn)行了研究和設(shè)計(jì),并沒有實(shí)現(xiàn)一個(gè)完整的CAN總線控制器的功能,例如文獻(xiàn)只對CAN控制器的狀態(tài)機(jī)進(jìn)行研究,文獻(xiàn)只對CAN控制器的位定時(shí)模塊進(jìn)行研究。而完整實(shí)現(xiàn)了CAN總線控制器功能的作品中,最高工作頻率又不是很理想,例如Mentor Graphics公司提供的MCAN2D1 CAN2.0 Network Controller的最高工作頻率只有32.46MHz,文獻(xiàn)中介紹的CAN總線控制器的最高工作頻率也只有50MHz,這些IP核顯然不能適應(yīng)高速環(huán)境的要求,同時(shí)文獻(xiàn)中介紹的控制器對外接口中出現(xiàn)了寄存器使能位等接口,這種接口不符合Avalon總線規(guī)范,不利于集成到FPGA芯片中,其通用性肯定較差,所以研究并設(shè)計(jì)出一款高速且通用性強(qiáng)的CAN總線控制器的IP核仍然是有其重要意義的。
1 系統(tǒng)實(shí)現(xiàn)
1.1 系統(tǒng)框圖
本設(shè)計(jì)中將整個(gè)CAN控制器系統(tǒng)分為了11個(gè)模塊,分別是Avalon總線接口模塊、寄存器組模塊、接收緩沖器模塊、發(fā)送緩沖器模塊、接收濾波模塊、CRC校驗(yàn)?zāi)K、狀態(tài)機(jī)模塊、標(biāo)識符填充模塊、錯(cuò)誤計(jì)數(shù)器模塊、位填充模塊、位定時(shí)模塊。其結(jié)構(gòu)框圖如圖1所示。
評論