摘要:使用Verilog HDL硬件描述语言完成了对CAN总线控制器的设计,能够实现符合CAN2.0A协议的所有功能。本总线控制器的外部接口采用ALTEra公司开发的Avalon总线接口,增强了控制器的应用灵活性。本设计使用Modelsim软件完成了功能仿真和时序仿真。
关键词:CAN总线;控制器;现场可编程门阵列
引言
CAN(控制器局域网)是一种先进的串行通信协议,由德国BOSCH公司开发,并最终成为国际标准(ISO11898),是国际上使用最广泛的现场总线之一。目前世界上已有20多家CAN总线控制器生产商,110多种CAN总线控制器芯片和集成CAN总线控制器的微处理器芯片。
由于定制的CAN总线控制器芯片不能嵌入到SoC(片上系统)中,而采用分立元器件实现CAN总线接口,使得系统中器件数量增加,同时也增大了系统面积,本文所介绍的CAN总线控制器正是由Verilog HDL语言描述,既可以作为一个独立的设备,也可以作为一个模块集成到FPGA中。
虽然目前国内外已有很多人研究或设计了CAN总线控制器IP核,但其中大多数只是对控制器中的某一个模块进行了研究和设计,并没有实现一个完整的CAN总线控制器的功能,例如文献只对CAN控制器的状态机进行研究,文献只对CAN控制器的位定时模块进行研究。而完整实现了CAN总线控制器功能的作品中,最高工作频率又不是很理想,例如Mentor GraphICs公司提供的MCAN2D1 CAN2.0 Network Controller的最高工作频率只有32.46MHz,文献中介绍的CAN总线控制器的最高工作频率也只有50MHz,这些IP核显然不能适应高速环境的要求,同时文献中介绍的控制器对外接口中出现了寄存器使能位等接口,这种接口不符合Avalon总线规范,不利于集成到FPGA芯片中,其通用性肯定较差,所以研究并设计出一款高速且通用性强的CAN总线控制器的IP核仍然是有其重要意义的。
1 系统实现
1.1 系统框图
本设计中将整个CAN控制器系统分为了11个模块,分别是Avalon总线接口模块、寄存器组模块、接收缓冲器模块、发送缓冲器模块、接收滤波模块、CRC校验模块、状态机模块、标识符填充模块、错误计数器模块、位填充模块、位定时模块。其结构框图如图1所示。
www.55dianzi.com
掉电、复位及总线上过多的错误都会使控制器进入总线脱离模式;系统上电、复位解除或过多错误而复位后的下个时钟会使控制器进入总线启动模式;在总线启动模式下,若之前因掉电、复位使控制器进入总线脱离模式,当控制器监测到总线上1次连续11个隐性位(逻辑电平1”)时,控制器进入总线空闲状态,若因过多错误使控制器进入总线脱离模式,则当控制器监测到总线上128次连续11个隐性位时,控制器进入总线空闲模式;当控制器没有数据发送但监测到总线上有显性位(逻辑电平“0”)时,控制器进入接收模式,而当控制器有数据发送同时监测到总线上有显性位时,控制器进入模式选择模式;模式选择其实就是一个总线仲裁,此时标识符将扮演仲裁位的角色,显性位的优先级更高,若总线仲裁失败则控制器进入接收模式,仲裁成功则进入发送模式;一帧数据成功发送完成后,控制器会进入间歇模式;若间歇帧发送成功,则控制器会再次进入总线空闲模式。状态机由空闲模式转换为模式选择模式的仿真图如图3所示。
1.2.5 位定时模块
位定时模块控制着控制器报文发送或接收的节奏,这个节奏就是位时间,它由四部分组成:同步段、传播段、相位缓冲段1和相位缓冲段2,这四个段均由时间份额构成,时间份额是根据预先设置的分频值对输入时钟进行分频得到的。
位定时模块还有一个重要的功能是将本节点与总线上的其它节点进行时钟同步。由于每个CAN节点使用的是独立的时钟,所以不同节点之间会有相位差,这些相位差严重时会影响报文发送和接收的准确性,所以有必要对不同节点进行时钟同步。
www.55dianzi.com
2 系统验证
整个系统的功能仿真和时序仿真是借助Modelsim软件完成的。图4所示是对控制器发送数据的验证,测试用的发送数据为随意选择的:00101001,仲裁场和控制场也是任选的,分别为:110100101110、110001,设置好寄存器组后,控制器计算出对应的CRC码为:110111001111 011,之后控制器将数据按CAN协议的帧格式打包逐位发送出去。
控制器最初处于总线脱离模式,复位结束后进入总线启动模式,当控制器检测到总线上的1次连续11个隐性位时,进入总线空闲模式,接着当控制器检测到总线出现第一个显性位时,进入模式选择模式,在此模式下,控制器进行的操作就是总线仲裁,确定本节点是否获得总线控制权,由于本测试采用的是控制器自测模式,即输出线与输入线连在一起,所以仲裁时间为12个位时间,仲裁成功后,控制器会进入发送模式,若无错误产生,数据发送完成后控制器进入间歇模式,最后进入总线空闲模式。
本文关键字:控制器 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术