DCAN
最近在调试DCD的CAN模块,网上也没有相关资料,只有厂家的IP设计手册。以前做汽车电子时搞过一段时间的CAN总线,不过只是软件应用,没有进行实际的驱动开发。这次的IP是DCD公司的,Digital Core Design (DCD) 成立于 1999 年,总部位于欧盟波兰,为处理器和微控制器、总线接口、算术协处理器和组件提供 Verilog 和 VHDL 高质量可合成 IP 内核。
驱动调试心得与体会
这个模块浪费了我很长时间,当然其中有软件问题和硬件问题。调试过程中会报各种错误。下面我来对一些常见的问题进行分析。
其中,BS为1,代表bus off。ES为1,代表至少有一个 CAN 错误计数器达到错误警告限制 (96)。DSO 为1,代表 RX FIFO 数据溢出。
1. ACK错误
我首先把收发器连上CAN的TX和RX,不接CAN分析仪或者接上分析仪不进行软件启动、又或者设置一个错误的波特率连接,运行程序,就会开始报错,ACK error 和TX error。这是因为ECC错误检测寄存器一直在检测错误,如果ACK没有被传送回来就会报错。此时通过示波器观察CAN高 CAN低可以观察到正确的波形。
2. bus off
当我断开CAN收发器时,可以看到总线上已经开始报bus off错误了。