用FPGA來做CAN總線主控制器是可行的,具體實現方式就是FPGA+CAN2.0協議的硬件組合,二是使用FPGA內部CAN2.0協議的IP核+CAN物理層,掛載在FPGA內部軟核上。下面我主要介紹利用FPGA的zynq系列7010,自帶CAN2.0協議的接口來實現。
圖1CAN總線控制器IP
首先,第一步:創建工程system_can_top,點擊左側CreateBlockDesign,創建systemcan總線系統模塊。
第二步:點擊AddIP添加搜索zynq,添加zynq到系統。
zynq系統如下:
第三步:配置zynq系統的外設,CAN總線,配置CAN時鐘1Mhz。
CAN總線設置時鐘1Mhz:
第四步:配置zynq其他外設,如DDR3,UART。
第五步:配置好后,點擊運行自動布線,驗證,保存。
第六步:生成system。
第七步:右鍵點擊CreateHDLWrapper,創建system頂層文件
第八步:生成頂層文件后,導出BlockDesgin,不需要綜合布線、生成bit流文件。
第九步:啟動SDK。
第十步:創建systemcan總線的測試工程
第十一步:新建測試文件
main.c
第十二步:添加CAN總線自檢測試例程
第十三步:Debug調試,在zynq7010平臺下調試仿真即可。
本文到此就介紹這里,將硬件驗證部分留給感興趣朋友,或者有這樣的硬件平臺的開發者。