引言
以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10M/S的速率运行在多种类型的电缆上。以太网与IEEE802.3系列标准相类似。
工业以太网是应用于工业控制领域的以太网技术,在技术上与商用以太网(即IEEE802.3标准)兼容,产品设计时,在材质的选用、产品的强度、适用性以及实时性、可互操作性、可靠性、抗干扰性、本质安全性等方面能满足工业现场的需要。
Ethernet过去被认为是一种“非确定性”的网络,作为信息技术的基础,是为IT领域应用而开发的,在工业控制领域只能得到有限应用,这是由于:
Ethernet的介质访问控制(MAC)层协议采用带碰撞检测的载波侦听多址访问(CSMA/CD)方式,当网络负荷较重时,网络的确定性不能满足工业控制的实时性要求;
Ethernet所用的接插件、集线器、交换机和电缆等是为办公室应用而设计的,不符合工业现场恶劣环境要求;
在工厂环境中,Ethernet抗干扰(EMI)性能较差,若用于危险场合,以太网不具备本质安全性能;
随着互联网技术的发展与普及推广,Ethernet传输速率的提高和Ethernet交换技术的发展,上述问题在工业以太网中正在迅速得到解决。
Ethernet应用于工业现场的关键技术
(一)通信确定性与实时性
工业控制网络不同于普通数据网络的最大特点在于它必须满足控制作用对实时性的要求,即信号传输要足够快和满足信号的确定性。实时控制往往要求对某些变量 的数据准确定时刷新。由于Ethernet采用CSMA/CD方式,网络负荷较大时,网络传输的不确定性不能满足工业控制的实时要求,故传统以太网技术难 以满足控制系统要求准确定时通信的实时性要求,一直被视为“非确定性”的网络。
工业以太网采取了以下措施使得该问题基本得到解决:
采用快速以太网加大网络带宽
Ethernet的通信速率从10、100Mb/s增大到如今的1、10Gb/s。在数据吞吐量相同的情况下,通信速率的提高意味着网络负荷的减轻和网络传输延时的减小,即网络碰撞机率大大下降,从而提高其实时性。
采用全双工交换式以太网
用交换技术替代原有的总线型CSMA/CD技术,避免了由于多个站点共享并竞争信道导致发生的碰撞,减少了信道带宽的浪费,同时还可以实现全双工通信,提高信道的利用率。
降低网络负载
工业控制网络与商业控制网络不同,每个结点传送的实时数据量很少,一般为几个位或几个字节,而且突发性的大量数据传输也很少发生,因此可以通过限制网段站点数目,降低网络流量,进一步提高网络传输的实时性。
应用报文优先级技术
在智能交换机或集线器中,通过设计报文的优先级来提高传输的实时性。
(二)安全性
在工业生产过程中,很多现场不可避免地存在易燃、易爆或有毒气体等,对应用于这些工业现场的智能装置以及通信设备,都必须采取一定的防爆技术措施来保证工业现场的安全生产。
在目前技术条件下,对以太网系统采用隔爆、防爆的措施比较可行,即通过对Ethernet现场设备采取增安、气密、浇封等隔爆措施,使现场设备本身的故 障产生的点火能量不外泄,以保证系统运行的安全性。对于没有严格的本安要求的非危险场合,则可以不考虑复杂的防爆措施。
工业系统的网络安全是工业以太网应用必须考虑的另一个安全性问题。工业以太网可以将企业传统的三层网络系统,即信息管理层、过程监控层、现场设备层,合成一体,使数据的传输速率更快、实时性更高,并可与Internet无缝集成,实现数据的共享,提高工厂的运作效率。
但同时也引人了一系列的网络安全向题,工业网络可能会受到包括病毒感染、黑客的非法入侵与非法操作等网络安全威胁。
一般情况下,可以采用网关或防火墙等对工业网络与外部网络进行隔离,还可以通过权限控制、数据加密等多种安全机制加强网络的安全管理。
(三)稳定性与可靠性
传统的Ethernet并不是为工业应用而设计的,没有考虑工业现场环境的适应性需要。由于工业现场的机械、气候、尘埃等条件非常恶劣控制工程网版权所有,因此对设备的工业可靠性提出了更高的要求。在工厂环境中,工业网络必须具备较好的可靠性、可恢复性及可维护性。
为了解决在不间断的工业应用领域,在极端条件下网络也能稳定工作的问题,美国Synergetic微系统公司和德国Hirschmann,Jetter AG等公司专门开发和生产了导轨式集线器、交换机产品,安装在标准DIN导轨上,并有冗余电源供电,接插件采用牢固的DB-9结构。
此外,在实际应用中,主干网可采用光纤传输,现场设备的连接则可采用屏蔽双绞线,对于重要的网段还可采用冗余网络技术,以此提高网络的抗干扰能力和可靠性。
(四)总线供电问题
总线供电(或称总线馈电)是指连接到现场设备的线缆不仅传输数据信号,还能给现场设备提供工作电源。对于现场设备供电可以采取以下方法:
在目前以太网标准的基础上适当地修改物理层的技术规范,将以太网的曼彻斯特信号调制到一个直流或低频交流电源上,在现场设备端再将这两路信号分离开来。
不改变目前物理层的结构,而通过连接电缆中的空闲线缆为现场设备提供电源。检验一下这种工业以太网解决方案,它扩大了从控制室到车间的通信范围,不论是定时关键型应用还是苛刻环境下的应用均适用。
解决方案主要特性:
带集成 MAC 的 Sitara™ ARM® Cortex™-A8 处理器
支持主要的工业以太网协议
IEEE 1588 精确时间协议 10/100 PHY
8 纳秒时间戳分辨率
迷你-极限温度 10/100 PHY
在 -40 到 125°C 下无错操作在 137m 以上
方案框图
相关器件:
1.DP83630 – 高精度 PHYTER® - IEEE 1588 精确时间协议收发器,具有准确性,低延迟性,并允许选择微控制器无需任何硬件定制。
系统框图:
功能框图:
详细资料:DP83630:高精度 PHYTER - IEEE 1588 精确时间协议收发器
2.AM3359 – Sitara ARM Cortex-A8 处理器。基于 ARM Cortex-A8 的AM335x微处理器在图像、图形处理、外设和诸如 EtherCAT 和 PROFIBUS 的工业接口选项方面进行了增强。
详细资料:AM3359:Sitara ARM Cortex-A8 处理器
3.DP83848H – 迷你-极限温度单路 10/100 以太网收发器。
系统框图:
功能框图:
详细资料:DP83848H:迷你-极限温度单路 10/100 以太网收发器
博通BroadR-Reach汽车以太网互连技术采用单对非屏蔽双绞线电缆和标准以太网PHY组件实现100Mbps速率数据传输,其互联成本可降低多达80%,为车内互连提供了创新的解决方案。
随着汽车电子产品的大量普及,车内安全、娱乐、诊断和辅助电子设备的数量在不断增加,设备之间的互连需求也越来越复杂。同时,车内的模拟系统也不断向数 字系统迁移,包括ADAS(高级驾驶员辅助系统)中的摄像头由模拟转向数字、车载娱乐系统中蓝光、高清显示的需求等等都给车内互连网络系统的带宽带来了很 大的挑战,大量的数据需要更大的带宽来传输。
另一方面,对汽车制造商而言,他们希望车内互连网络系统是开放和可扩展的,可以支持多种系 统和设备,具有融合能力,这样当有新的应用和设备引进时就可以很容易地加入到系统中去。当然,越来越多设备的增加也导致了车内互连电缆数量的增多,成本也 随之提升。汽车制造商亦希望在满足汽车严格的技术要求、保证连接可靠性和稳定性的前提下,找到更低成本的互连方案。
博通公司推出创新的 BroadR-Reach汽车互连解决方案很好地满足了汽车制造商们的需求。这是该公司首次进军汽车市场后推出的业内第一个汽车以太网互连解决方案,该方 案利用单对非屏蔽双绞线电缆和标准以太网PHY组件组成车内以太网互连网络,可实现100Mbps速率全双工数据传输,PHY与上层MAC之间连接采用标 准的MII接口。此互连网络除可传输数据外,还支持POE功能,即双绞线在传输数据的同时还可以为连接终端供电,省去了终端外接电源,降低了供电的复杂 度。
与传统的LVDS技术相比,BroadR-Reach互连方案优势显著。LVDS线缆为了满足汽车电磁辐射和温度的严格要 求,需要有很厚的屏蔽层,同时连接器也比较大和复杂。而BroadR-Reach方案采用的单对非屏蔽双绞线较之LVDS线缆,不仅能实现同样的功能,且 减少了互连成本。
BroadR-Reach汽车以太网产品系列包括五款芯片。其中两款是以太网PHY芯片,另外三款是嵌入了PHY的高 集成度交换芯片。其中交换芯片 BCM89500和BCM89501的应用主要是将汽车网络中的多个终端互连,而交换芯片BCM89200主要用于互连汽车内的多个ECU。PHY芯片 BCM89610用于汽车熄火时的车内诊断系统,而同是PHY芯片的BCM89810则是针对车内多种设备之间的互连应用。
从BroadR-Reach解决方案在ADAS系统中的应用示意图中可以看到,带有PHY的摄像头将视频等数据信息通过单对双绞线传送到交换芯片上,交 换芯片把各通道采集的信息汇聚到一起,通过电子控制单元中的CPU做一定的处理如编解码处理,然后将视频输出到显示器上。
在车载信息娱 乐系统的应用上,目前主流的MOST技术的连接方式是将多个设备环形地连接在一起,设备间共享最大速率为150Mbps带宽,当某个设备占用很大带宽的时 候,别的设备可能就没有带宽资源可以使用了。与MOST相比,基于标准以太网BroadR-Reach技术为每个设备提供专用的 100Mbps带宽,上行速率甚至可以达到1Gbps;同时它还具有链路汇聚功能,例如可以把两条不同的百兆物理链路汇聚成逻辑上可看作为一条的两百兆链 路,这样可以简单地按链路数量线性扩展带宽,为要使用大带宽的设备提供快速的带宽增加。这种链路的汇聚还能提供冗余保护,当某条链路出错时,可以很快地转 到另一条链路上,以确保数据的顺利传输。
Xilinx的千兆以太网解决方案
一、Xilinx的千兆以太网解决方案
1)IP的支持
Xilinx 提供了可参数化的10/1Gbps以太网媒体访问控制器功能LogiCORE解决方案。该核设计用来同最新的Virtex-5、Virtex-4和 Virtex-II Pro平台FPGA一起工作,并可以无缝集成到Xilinx设计流程中。吉比特级以太网媒体访问控制器核(GEMAC)是针对1Gb/s(Gbps)以太 网媒体访问控制器功能的可参数化的LogiCORE IP解决方案。GEMAC核的设计符合 IEEE 802.3-2002规范。GWMAC核支持两个PHY端接口选项:GMII或RGMII。并且,Xilinx 全面的1Gb/s以太网解决方案包含吉比特MAC和PCS/PMA IP核产品。Xilinx吉比特以太网MAC解决方案还包括带有内置处理器本地总线(PLB)接口(PLB GEMAC)的配置。该配置通过Xilinx嵌入式开发套件(EDK)提供。GEMAC LogiCORE IP可以实现与1000 Base-X PCS/PMA或SGMII核的无缝集成,并提供3种选项用来与PHY器件接口:1000 BASE-X或10位接口(TBI)或SGMII。
GEMAC核非常适合开发高密度吉比特级以太网通信和存储设备,其关键特性有:
单速全双工11 Gbps MAC控制器;
设计符合IEEE 802.3-2002规范;
具有最小缓冲的直通操作,以最大限度地实现客户端接口的灵活性;
通过可选的独立微处理器中的接口进行配置和监控;
直接与以太网统计数据核接口,以便实现功能强大的统计数据收集;
通过MAC控制暂停帧实现对称的或非对称的可选的流程控制;
VLAN帧的可选技术支持符合IEEE 802.3-2002规范的要求;
支持任意长度的“jumbo帧”(可选);
可选的地址滤波器,具有数量可选的地址表输入。
2)相应的开发板套件
Xilinx 提供的千兆以太网开发套件为Virtex-5 ML505/ML506开发板(使用的FPGA芯片为:XC5VLX50T-1FF1136),该开发板支持10/100兆、1/10吉以太网,加上 Xilinx公开的基于ML505/506的设计,可为基于以太网开发的设计提供全方位的参考。此外,ML505/506还具备SFP、PCI E、SATA以及SMA接口等其余吉比特接口,是学习和研发高速连接设备的理想平台。
二、基于FPGA的千兆以太网MAC控制器实现方案
整体设计方案
以太网控制器的FPGA设计工作包括以太网MAC子层的FPGA设计、MAC子层与上层协议的接口设计以及MAC与物理层(PHY)的MII接口设计。 该以太网控制器的总体结构设计框图如图10-30所示。整个系统分为发送模块、接收模块、MAC状态模块、MAC控制模块、MII管理模块和主机接口模块 六部分。发送模块和接收模块主要提供MAC帧的发送和接收功能,其主要操作有MAC帧的封装与解包以及错误检测,它直接提供了到外部物理层芯片的并行数据 接口。在实现中物理层处理直接利用商用的千兆PHY芯片,主要开发量集中在MAC控制器的开发上。
图1 以太网控制器的结构设计框图
MAC 控制模块则用于执行全双工模式中的流量控制功能。MAC状态模块可用来监视MAC操作过程的各种状态信息,并作修改。MII管理模块提供了标准的IEEE 802.3介质独立接口,可用于连接以太网的链路层与物理层。主机接口则提供以太网控制器与上层协议(如TCP/IP协议)之间的接口,以用于数据的发 送、接收以及对控制器内各种寄存器(控制、状态和命令寄存器)的设置。
三、Xilinx 千兆以太网MAC IP Core
1.GMAC IP Core的应用场景和架构
Xilinx 提供了三态以太网MAC控制器的IP Core,可实现单条吉比特以太网链路,通过交换机或路由器可与任意以太网端口相连。由于MAC控制器的速率很高,底层传输必须依赖Rocket I/O,在客户端还需要利用FIFO来交换数据,其完整的设计方案如图10-35所示。
图6 千兆以太网MACIP Core的应用场合示意图
2.GMAC IP Core的配置界面和接口信号
图7 千兆以太网MACIP Core的配置界面
千兆以太网MACIP Core的配置界面如图10-36所示。GEMAC控制器所实现的主要功能如图10-37所示,包括发送引擎、接收引擎、流控制、GMII接口、客户发送接口、客户接收接口以及客户管理接口。
图8 千兆以太网MACIP Core的主要功能示意图
四、 本章小结
高速串行传输技术是FPGA未来的三大应用领域之一,本章主要介绍了Xilinx公司的Rocket I/O解决方案。首先给出高速传输的背景,指出串行方式是吉比特以及更高速率链路的必然选择。其次,给出了吉比特串行传输的通用架构,为后文做好铺垫。接 着重点介绍了Xilinx公司Rocket I/O的系统组成、相关协议、时钟设计方案、开发要素以及Rocket I/O的使用方法。最后说明了千兆以太网MAC控制器IP Core的使用方法。读者需要注意的是Rocket I/O是Xilinx高端FPGA中的内嵌组件,和DCM、硬核乘法器、块RAM等的使用方法是一样的,可通过IP Core调用。高速传输是一种新技术,开发难度较大,本章只是介绍了其中的主要核心部分和基本原理,还需要读者阅读大量的文献和实际操作才能熟练开发相关系统。
文章详情:Xilinx的千兆以太网解决方案
Altera的千兆以太网解决方案
1 IP核的支持
Altera提供了可参数化的千兆以太网megacore解决方案。该方案可在Altera的Arria GX,CycloneII,CycloneIII系列FPGA上工作,可配置使其包含MAC,PCS,PMA模块中的一种或多种,配置选择及相应的接口标准。
千兆以太网IP核的功能描述如下:
(1)支持IEEE 802.3标准。
(2)10/100/1 000 Mb,s以太网媒体访问控制支持半双工和全双工工作模式。
(3)多通道MAC,支持最多24端口。
(4)以太网物理层编码子层1000BASE一X/SGMII标准的自协商。
(5)接口使用方便。
对于千兆以太网控制器的实现,采用表第l行的配置。吉比特级以太网媒体控制器核(GEMAC)是针对1 Gb/s以太网媒体访问控制器功能的可参数化的megacore解决方案。
2 基于FPGA的千兆以太网MAC控制器实现方案
2.1 整体设计方案
以太网控制器的FPGA设计工作包括以太网MAC子层的FPGA设计,MAC子层与上层协议的接口设计以及MAC与物理层(PHY)的GMII接口设计。该以太网控制器的总体结构设计框图如图1所示,整个系统分为MAC模块,主机接口模块和管理数据输入输出模块。其中,MAC模块主要执行在全双工模式下的流量控制,MAC帧实现发送和接收功能,其主要操作有MAC帧的封装与解包以及错误检测,直接提供了到外部物理层器件的并行数据接口,物理层处理直接利用商用千兆PHY器件,主要开发集中在MAC控制器的研究。
管理数据输入输出模块提供了标准的IEEE802.3介质独立接口,可用于连接以太网的链路层和物理层。主机接口则提供以太网控制器与上层协议(如TCP/IP协议)之间的接口,用于数据的发送、接收以及对控制器内各种寄存器的设置。
2.2 接口描述
整个系统模块间的接口连接如图2所示。其中,PCS和PMA分别代表物理层的物理编码子层和物理介质接入层。
(1)通过MII/GMII接口提供了与以太网物理层(PHY)设备的无缝连接。
(2)吉比特模式下支持RGMII接口。
(3)可选择的管理数据输入/输出模块为以太网PHY提供管理信息。
(4)为用户提供基于Aalon—ST的8 bit/32 bit接口。
(5)可选择的集成物理介质介入模块。
2.3 千兆以太网IP核
Altera提供三态以太网MAC控制器IP核,可实现单条或多条吉比特以太网链路,通过交换机或路由器可与任意以太网端口相连。其配置界面如图3所示。
整个配置界面可将IP核配置为所需模式并进行IP核参数设置,将IP核设置为千兆以太网MAC模块,内部提供FI—FO模块。可选的PCS模块由PHY器件提供,这个界面分为4个配置页面,描述如下:
Core Configuration:核配置选项,配置以太网功能模块,是否包含PCS模块、FIFO模块,配置接口类型、端口数等;
MAC Options:MAC配置选项,配置MAC模块功能;
FIFO Options:FIFO存储器选项,可设置FlFO存储器类型以及存储器数据长度;
PCS/SGMII Options:物理介质接入层模块配置页面,配置物理层。
相应的接口信号包括:控制接口信号,复位信号,MAC系统端信号(包括接收接口信号和发送接口信号),MAC以太网端信号(包括GMII模块信号和PHY管理接口信号)。
表1中描述了MAC以太网端GMII模块信号、接口信号,其余信号参考千兆以太网用户手册。GMII模块的接收信号一般直接连到PHY器件,负责与PHY器件的数据交互,其信号与PHY器件接口一一对应,如表1所列。
4 物理层(PHY)器件
Ahera公司的千兆以太网MAC核默认支持的物理层器件有支持10/100 Mb/s的National DP83848C,支持10/100/1 000 Mb/s的National DP83865,Marveil 88E1145以及支持双物理层和10/100/l 000 Mb/s的Marvell 88E1111。在此,选择National DP83865为PHY器件。
MAC核与吉比特PHY器件通过GMII接口的连接如图4所示。
DP83865是National Semiconductor公司的全特性物理层收发器,集成了PMD子层以支持10BASE-T,100BASE-TX和1000BASE-T以太网协议,具有超低功耗,3.3V或2.5VMAC接口。
5 开发环境
利用Ahera强大的SOPC Builder系统开发工具和Quar-tusII软件设计,基于QuartusII和niosII的SOPC设计流程如图5所示,SOPC开发流程比 FPGA的开发流程(细线框)多增加处理器及其外设接口的定制步骤和软件开发步骤(粗线框)。这些新增加的步骤在SOPC Builder,niosII IDE工具的协助下能够轻松完成。
6 结语
使用千兆网系统可直接将处理的高速信号从网口发送给远端处理计算平台,节省功率放大器和高频电缆等,减少投入,加强系统的集成性和可靠性,更便于设计人员的调试,且接口更具通用性和扩展性。
近年来,随着以太网技术的进一步发展和完善,特别是通信速率的提高和交互技术的应用,使得以太网技术应用于现场控制领域成为可能,这对工业控制 网络产生了新的影响。从目前的趋势来看,以太网己经进入了现场控制级,但是已有的现场总线仍将继续存在,工业以太网只能占领一定的市场。
从现实来看,以太网扩展了现有的系统,但是现场总线不可能完全被工业以太网替代,后者的潜力巨大,其应用领域一定会不断扩大。所以,将现场总线与以太网 结合,从而实现底层生产与上层管理的紧密集成,已经成为一种趋势。CAN总线作为国际上应用最广泛的现场总线之一,在我国也得到了很广泛的应用,该设计以 CAN总线作为工业现场总线,实现其与以太网的互联。
1 硬件结构
目前,对于 CAN和以太网相连的嵌入式网关设计主要有两种方法:一种是低档MCU加接口芯片的设计方法,另一种是高档MCU加EOS(实时多任务操作系统)再加接口 芯片的设计方法。因CAN只采用了ISO/OSI参考模型的一、二层,协议相对简单,比较适合用于低成本、速率要求不高的离散控制系统。从合理的成本和有 效利用处理能力这两方面考虑,该设计采用低档MCU加接口芯片的方法,其硬件框图见图 1。
1.1 主控芯片及以太网接口模块
根据要求,该系统选择了性能价格比较高的Atmel公司生产的AT89C55单片机。它是面向测控对象和嵌入式应用的,所以它的体系结构以及CPU、指 令系统、外围单元电路都是按照这种要求专门设计的。它内部带高达20 KB的FLASH程序存储器,AT89C55完全兼容8051指令集,片上FLASH方便了使用者进行在线编程,工作速率最高可达33 MHz,256 B的内部RAM,32个可编程的I/O口,3个16位的定时/计数器,8个中断源,支持低功耗的空闲工作模式。以太网接口选用的是RTL8019AS芯 片,它是由Realtek公司生产的一种高度集成的以太网控制器,能实现以太网媒介访问层(MAC)和物理层(PHY)的全部功能。RTL8019AS内 部有两个RAM区域:一是16 KB,地址为0x4000~0x7fff,要接收和发送数据包必须通过DMA读写RTL8019AS内部的16 KB的RAM,它实际上是双端口RAM,即有两条总线与其连接,一条总线用于RTL8019AS读/写或写/读该RAM,即本地DMA;另一条总线用于单 片机读或写该RAM,即远程DMA;二是32个字节,地址为0x0000~0x001F,用于存储以太网物理地址。主控芯片和以太网接口芯片的硬件接口原 理图见图2。值得注意的是由于以太网的包最大可以超过1 500个字节,AT89C55的片内RAM只有256个字节,因此无法存储这么大的包,所以这里扩展了一个32 KB的外部RAM,这样同时也能提高单片机的数据传输速度。
1.2 CAN接口模块
组成CAN系统的主要器件是CAN控制器和收发器。该设计中,CAN接口模块选用SJA1000芯片和PCA82C250芯片。SJA1000是一个独 立的CAN控制器,它是Philips公司另一个CAN控制器PCA82C200的替代产品,且增加了一种新的工作模式(Peli CAN),这种模式支持CAN 2.0B协议。SJA1000主要完成CAN的通信协议,实现报文的装配和拆分、接收信息的过滤和校验等。
PCA82C250是CAN控制器与物理总线之间的接口,主要用于增强系统的驱动能力。采用收发器的系统中,节点数至少可以达到110个,同时还具有降低射频干扰(RFI)和很强的抗电磁干扰 (EMI)能力。在处理这部分电路时,有几个地方要特别注意:
(1)晶振电路的问题。89C55和SJA1000都应该有各自独立的晶振电路,不能够用SJA1000的时钟输出信号CLKOUT来驱动单片机。
(2)复位引脚的问题。虽然SJA1000的复位是低电平,但不能通过一个非门直接连接单片机的复位引脚。一般对解决复位引脚问题有两种方式:第一种是 使用单片机的I/O引脚控制SJA的复位引脚,其好处是单片机可以完全控制SJA的复位过程;第二种是采用适当的复位芯片,为了降低成本,该设计采取的是 第一种方法。
(3)RX1引脚的电位必须维持在约0.5 VCC上,否则将不能形成CAN协议所要求的逻辑电平。
(4)一定要注意电缆的终端阻抗匹配,它直接影响CAN总线是否能正常工作和网络性能。CAN接口模块的硬件电路图见图3,在PCA82C250的RS脚上接有一个斜率电阻R,可根据总线通信速度适当调整电阻的大小。
2 通信模块软件设计
2.1 SJA1000驱动程序的实现
SJA1000驱动程序是由SJA的初始化函数、发送函数、接收函数组成的,图4所示为其流程图。
(1)SJA1000的初始化。SJA1000在系统上电、硬件复位或主控制器发出复位命令后需要进行初始化,以设定它的工作模式、通信速率、输出控制 方式和标识符屏蔽格式等重要参数。CAN控制器SJA1000的初始化只能在复位模式下才能完成。程序的流程图如图4所示。
首先程序检测CAN接口是否正常工作,即向SJA1000的测试寄存器写入并读出,校验其结果是否一致,如果结果一致则进入复位模式进行初始化设置。在初始化的过程中,如果对某个寄存器的设置超过规定的时间还未完成,则认为初始化失败,初始化程序自动发送错误信号。
(2)数据的发送与接收。SJA1000芯片有一个报文发送缓冲区和两个报文接收缓冲区,用于CAN报文传送。数据从CAN控制器SJA1000发送到 CAN总线首先是由CAN控制器自动完成的,发送数据程序把数据存储区中待发送的数据取出,组成信息帧,并将主机的ID地址填人帧头;然后将信息帧发送到 CAN控制器的发送缓冲区;最后启动发送命令即可。信息从CAN总线到CAN接收缓冲区也是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取要接 收的信息,并将其存储在数据存储区即可。
2.2 RTL8019AS驱动程序的实现
RTL8019AS的驱动程序和SJA的驱动程序一样,有3种功能:芯片初始化、收包、发包。
(1)RTL8019AS的初始化。RTL8019AS的初始化过程比较复杂,但十分重要,它决定了通信过程中的一些重要参数。如设置相关工作模式的寄存器,分配和初始化接收及发送缓冲区,初始化网卡接收地址等,其流程图见图5所示。
(2)数据的发送与接收。因为在RTL8019AS的初始化程序中已经完成了以太网的物理地址设置,并指定了发送缓冲区起始页面地址寄存器TPSR。此 外,RTL8019AS的CRC校验自动生成器也被使能,所以RTL8019AS的数据包发送程序相对要简单。在数据包的发送过程中,AT89C55只要 通过远程DMA将待发送的数据包写至RTL8019AS片内SRAM的发送缓冲区,并启动发送过程即可。
在接收数据包时,有查询和中断两种方式,鉴于AT89C55的处理能力有限,在该设计中采用查询方式,根据判断CURB==BNRY+1,可以判断是否收到新的数据包,如果有则通过DMA读操作从网卡芯片RAM读出数据。
2.3 网关协议转换流程
嵌入式网络接口实现两种网络的互连。当以太网应用层有数据要发送到CAN节点时,首先将数据发送到网关,由以太网控制器协议转换模块解析完整的CAN协 议数据包,通过CAN控制器发送到CAN总线。反之,当CAN设备有数据要发送到用户层时,首先将数据发送到透明网关,由CAN控制器协议模块将完整的 CAN协议数据包存放在缓冲区,再通知主控芯片,由它调用以太网控制协议转换模块,将完整的 CAN协议数据包作为应用层数据封装起来,再发送到以太网的应用层。
3 结 语
这里介绍的是一种低成本、高可靠性、快捷的CAN以太网网关的硬件、软件设计方案,通过实际应用证明,该设计可以作为CAN总线节点的一个模块,能够与仪器仪表等设备相结合,使其具有网络通信的能力,比较同类产品的设计,该设计能大大提高其性价比。
------------------------------------------------------------------------
以太网资料集绵——以太网技术:迈向工业物联新时代
评论
查看更多