基于CH368的PCIE总线接口CAN节点的实现

阅读: 评论:0

基于CH368的PCIE总线接口CAN节点的实现
唐建;蒲永材;李泽银
【摘 要】为了提升武器系统自主化水平、提高国产化率、降低成本,采用CH368芯片实现PCIE总线的接口转换,并在此基础上完成PCIE总线的CAN节点设计.PCIE具有串行总线的优势,逐渐替代PCI成为信息处理与控制系统最常用的总线之一,并在军工领域得到广泛运用;文中详细介绍了CH368芯片的功能特点,并对本地总线接口与CAN控制器SJA1000的访问控制逻辑实现进行了详述.应用结果表明:采用该方案设计的CAN节点通讯稳定可靠,还具有电路简洁、成本较低的特点.
【期刊名称】《机电产品开发与创新》
【年(卷),期】2017(030)006
【总页数】4页(P91-94)
【关键词】CH368;CAN;PCIe总线;SJA1000;国产化
【作 者】唐建;蒲永材;李泽银
【作者单位】中国兵器工业第58研究所,四川绵阳621000;中国兵器工业第58研究所,四川绵阳621000;中国兵器工业第58研究所,四川绵阳621000
【正文语种】中 文
口罩成型机
【中图分类】TP302
本文描述的CAN节点用于某自主化武器控制系统,综合对国产化率、成本以及可靠性的考虑,我们采用了ASIC方案实现。但PCIE总线芯片采用沁恒CH368,该方案的成功实施,在提高器件国产化率的同时,还保持了低成本的优势。这对提高类似产品的国产化率,具有很好的参考意义[1~4]。
随着数字电子技术的发展,计算机系统中各种功能扩展模块也纷纷采用了PCIE接口进行扩展设计。而CAN总线的高性能、高可靠性已被业界认可,已大量应用于工业控制、汽车电子,甚至信息化武器系统中。面对基于PCIE总线的CAN接口需求,具体设计时都需要完成PCIE总线到CAN控制器总线的转换。目前的方案根据芯片选型来看有ASIC方案和FPGA方
案两大类。①ASIC方案。PCIE总线及CAN控制器均采用ASIC芯片实现,常见是PEX8311+SJA1000。再搭配小规模CPLD完成总线时序的转换;②FPGA方案。采用FPGA中自带的硬PCIE IP核实现PCIE接口及协议解析,FPGA外接SJA1000或者直接用软IP实现CAN Core。
相对来说,ASIC方案硬件电路复杂,采用成熟芯片可靠性高。FPGA方案对FPGA有最低要求,开发难度较大,容易有Bug,验证周期长。
本文采用的CAN接口实现了3通道隔离的CAN接口。处理器通过PCIE总线向CAN控制器发起读写操作命令,CH368芯片完成PCIE总线物理层电信号转换并进行协议解析后,实现为Local Bus的读写操作。然后由挂接在Local Bus上的CPLD完成总线时序的转换、片选译码、中断状态指示等工作。SJA1000控制器直接连接ZLG的CAN隔离驱动模块CTM1051。整个模块的功能框图如图1所示。
从图1中看出,方案中非国产芯片只有SJA1000 和 LC4256,其它元器件,包括电阻电容、晶振、24C02均为国产元器件。国产化率达到了90%以上。
CH368芯片连接PCI-Express总线的通用接口芯片,支持I/O端口映射、存储器映射、扩展ROM以及中断。CH368将高速PCIE总线转换为简便易用的类似于ISA总线的32位或者8位主动并行接口。适用于高速实时的I/O控制卡、通讯接口卡、数据采集卡等。芯片采用CMOS工艺,3.3V/1.8V供电,采用 LQFP100(14×14)mm 封装[5]。其基本特点为: ①PCIE x1接口;②提供I/O端口及内存映射;③支持中断共享,并支持边沿或电平触发;④可用EEPROM设定板卡ID;⑤提供SPI及I2C接口;⑥内置硬件计时器单元;⑦并行总线时序可通过编程进行调整;⑧有工业级产品,工作温度为-40~+85℃。
与PEX8311相比,CH368所支持的功能明显较弱,PEX8311的PCIE接口除可设置为endpoint模式外,还可配置为root模式,Local Bus可配置为C和M模式,支持更灵活的总线时序调整,还有更强大有DMA传输和mailbox等功能。但PEX8311的BGA337封装会占用(21×21)mm的板面积。PCIE接口的CAN节点设计只需要Local Bus具有内存映射及中断功能即可,CH368芯片完全可以胜任,成本上更具优势。
背心袋
该部分电路可参考沁恒公司提供的技术文档。设计时仍需要注意以下几点:①PCIE总线的TX和RX差分对,要注意信号方向,以保证与PCIE root部分正确连接了,耦合电容应靠近
芯片放置在信号发送端;②1.8V的电源要为PCIE总线提供驱动的,要保证电源纹波较小。特别是VCC18A电源要单独进行滤波处理;③EEPROM为设置ID用,如无特殊要求,可以不用,沿用厂家默认ID即可;④数据总线及地址总线均可按实际使用引出,如文中采用8位内存总线方式,其余的24位数据及IO读写信号均可以不连接;⑤16脚连接的12K电阻采用1%精度;⑥该PCB设计因为有PCIE高速总线信号,需要精心设计,并进行阻抗匹配,可参考PCIE规范。
CPLD采用了ispMACH4000V系列LC4256V-75T144I,该系列CPLD采用3.3V单电源供电,低功耗,并支持IO接口5V耐受,工业级芯片结温范围可达到-40~+105度。该芯片拥有96个用户IO,256个宏单元,非常适合也完全满足本方案的要求。CPLD电路设计只需注意以下几点:①在芯片每个电源引脚都要安装滤波电容;②JTAG电路引线控制长度,下载连接器就近摆放;③为CPLD进行信号定义时,最好进行一次逻辑功能预布,将功能引脚合理分配在多个逻辑块中,以防止出现在进行管脚约束后,不能生成JED文件困扰。
磁力头CAN控制器选用SJA1000T芯片,该芯片采用SO28封装,体积较大,是业界使用最广泛的独立CAN控制器。支持CAN2.0B协议,并提供BasicCAN和PeliCAN两种编程模式。集成
杏蜜
的64 Bytes的接收FIFO,在大多数处理器平台上能获得较快的通讯速度。SJA1000T的典型电路如图3所示。①MODE信号接高电平,采用Intel模式;②INT#中断输出信号一定要加上拉,才保证SJA1000T芯片中断功能正常;③RX1引脚电压被设计为2.0V,分压电阻选用1%精度;④AD信号为双向信号,虽然输出电平是5V CMOS,仍可以直接连接到CPLD芯片;⑤多片SJA1000T芯片可以共用一个晶振。 AD[7:0]、ALE、RD#、WR# 信号多片也是共用的。
矫姿带这部分电路我们采用了一个ZLG(致远电子)的CAN收发器模块CTM1051Q来实现,该模块内部包含隔离DCDC、信号隔离电路、CAN总线收发电路、基础的总线防护等。同传统的“隔离电源+光电隔离+TJA1050”设计相比,具备更高的集成度、更高的可靠性和更具竞争力的价格。
CTM1051Q模块是一款使用简单、可靠的国产CAN收发器件。在简单使用环境下,只需要接上电源、TTL端收发信号,再连接到CAN总线就可以使用,不需要其它外部元件。恶劣应用条件下,可参考图4添加防雷、防浪涌等措施。
因为SJA1000T总线接口是Address、Data复用的,将SJA1000T与CH368直接连接的话,
是无法对SJA1000T正常访问的,因此需要CPLD逻辑完成该项工作。同时,为了降低软件驱动开发的复杂度,CH368芯片的设置全部采用了复位以后的默认值。这些设置包括信号的极性、信号的输出有效电平的宽度等。并以此为基础进行CPLD的逻辑开发工作。CPLD设计采用VHDL描述语言,整个设计采用自顶而下的设计方法,使用ispLEVER+ModelSim软件进行设计与仿真[7~10]。其外部连接及逻辑功能框图见图5。
CPLD的主要功能有:①完成地址译码,对CH368访问空间的进行分配;②实现CH368读写操作时序到SJA1000T访问时序的转换;③实现多个CAN控制器的中断状态及响应;④实现硬件复位功能。
CH368提供了32K字节内存与255字节IO映射空间。我们只使用内存(Memory)空间进行外部空间的映射与访问。地址A15因为只能由内部IO寄存器来控制,作为额外的译码扩展使用。所以暂且不用,只对A[14:0]进行译码。
地址译码逻辑很简单,只需要用VHDL中的assign语句就可以很好的实现了。全局消息钩子
CH368芯片的读写操作时序以及SJA1000的访问接口时序见图6~图8。
图6 中的TEN为读写脉冲宽度,默认值为30ns×7+60ns-30ns=240ns。 SJA1000 一个最小写操作周期 TWR=tW(AL)+tLLWL+tW(W)+tWHLH=8+10+20+15=53ns;最小读操作周期 TWW=tW(AL)+tLL-RL+tW(R)+tRHDZ=8+10+40+30=88ns。 因此在一个 TEN 时间内完全可以满足SJA1000的操作时序要求。
通过同步状态机,可以方便地将CH368的时序转换为SJA1000操作时序,其工作状态图如图9所示。
注意到SJA1000的写操作保持时间TWHDX为8ns,而CH368的LocalBus总线时钟为100MHz,因此,在进行写操作时,专门设计了有1个时钟周期宽度的保持状态KEEP,以保证写操作时数据的保持时间要求。时序转换状态机通过ModelSim仿真得到的操作时序如图10所示。
CH368芯片只有一个中断响应引脚INT,本设计采用了简单的中断共享方式。当3个SJA1000芯片中任何一个控制器产生了中断请求,都将置CH368的INT引脚为有效状态,向系统申请中断。并在CPLD中实现了一个中断状态寄存器,用来指示3个SJA1000芯片的INT引脚状态。
当控制器有中断产生时,CH368向系统申请中断,系统调用中断服务程序进行处理,首先读取CPLD中的中断状态寄存器,判断是哪一个控制器发出的中断请求,然后转入相应控制器的中断处理流程。虽然中断服务程序也可以通过逐一查询每个SJA1000的内部相关寄存器的方式来进行判断,但会消耗较多的处理器时间,从而导致中断占用间延长,而降低系统的响应能力。
SJA1000芯片有2种复位方法,一种是通过引脚RST输入一个低电平脉冲,即硬件复位。一种是通过对命令控制寄存器的bit0置1来实现的软复位。硬件复位一般只在上电时进行一次,但在实际对SJA1000芯片的应用中发现,软复位有时并不能达到复位的效果,而此时又不能对整机进行复位操作。
为了确保通过软件就能够可靠地复位芯片,在每一个CAN控制器映射区内实现了一块只写的复位地址区域,向该地址范围执行写操作时,就会产生一个复位信号送到SJA1000的RST引脚。复位信号为低电平有效信号,信号宽度大于20ms。如果该信号全部采用CPLD逻辑实现的话,在100MHz运行频率下,触发器资源占用较大,因此本设计采用了74LS123单稳态触发器来配合实现,由CPLD产生触发信号,并通过调整74LS123的RC参数来控制脉冲宽度。

本文发布于:2023-06-12 16:32:10,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/137614.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:芯片   总线   采用   信号   中断   进行   设计
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图