摘要介绍清华同方核数据采集系统中的100Mbps以太网控制模块的硬件、软件设计,以及以太网控制模块的发展和未来。该模块是基于32位高性能的ColdFire5307微处理器设计的,运行嵌入式操作系统uClinux,完成基于以太网的数据采集任务。
关键词ColdFire 以太网控制模块 bootloader uClinux 嵌入式操作系统
清华同方公司的核数据采集系统中的数据收集和发送的通信控制模块,以前是基于CAN总线设计开发的,也有效可靠地完成了以前的数据采集任务,在威视集装箱检测系统中发挥了应有的作用。但是随着前端数据量的急剧增加,CAN总线的许多缺点,大大限制了系统的通信能力,同时以往的8位处理模块也无法胜任大量数据的缓存和发送任务。因此,我们为同方核数据采集系统设计了100Mbps以太网接口的32位嵌入式控制模块,成功地完成了系统中高速通信控制功能。
1 100Mbps以太网与CAN总线的对比
100Mbps以太网接口相比CAN总线接口,在数据传输速度、传输距离、软件可靠性、控制软件开发的难度,及以后的可扩展性等各个方面,都有很大的优势,具体如表1所列。因此,在通信能力要求较高的系统中采用100Mbps以太网替代CAN总线的优势是显然的。
表1 100Mbps以太网与CAN总线的对比
2 100Mbps以太网控制模块的硬件架构
100Mbps以太网控制模块的硬件设计比较复杂,包括的外设也比较多,不过主要是以ColdFire5307微处理器和以太网通信芯片ASIX88796L为核心的,如图1所示。
图1 模块硬件架构
(1) ColdFire5307
ColdFire系列微处理器是Motorola公司面向嵌入式工业控制系统的高性能32位微处理器。它具有很好的32位架构,是Motorola公司延续M68K产品线的替代产品,继承了M68K系列优秀的指令集设计和CISC架构的优点,并融入了RISC架构的优点,在速度和架构之间得到很好的平衡,非常适合于工业现场控制。ColdFire5307是ColdFire家族的第3代产品,除了内部的32位微处理器以外,还带有一个算术累加单元,用于完成数字信号处理系统中常用的累加和累乘等常见数字信号处理算法等。ColdFire微处理器上可以运行流行的实时操作系统,像VxWorks和Nucleus等。但是最为可靠和常见的,是运行uClinux操作系统。
(2) 100Mbps以太网芯片及其电路部分
ASIX公司的ASIX88796L是NE2000兼容的、16位数据总线接口的、10M/100Mbps自适应的以太网通信芯片。之所以选择ASIX88796L,主要原因是它极高的性价比和NE2000兼容的架构。NE2000是非常好的以太网MAC层架构,也是非常成熟的架构。NE2000架构以太网接口芯片的驱动和应用也是非常成熟的,在uClinux操作系统下也可以比较容易应用。
ASIX88796L的内部带有8K字的SRAM作为发送和接收以太网数据的缓冲器。另外,ASIX88796L内部带有10M/100Mbps的以太网物理层接口(PHY),可以直接和以太网隔离变压器连接以后接RJ45接口。
ASIX88796L芯片支持80186总线、M68K总线和8051总线。我们使用它的M68K总线模式来和ColdFire5307接口。这种模式的选择可以通过ASIX88796L的模式选择引脚CPU1∶0进行:当CPU1∶0设置为0b10时,选择Motorola的M68K总线,这个时候ASIX88796L的引脚和ColdFire5307的引脚应该按照表2的对应关系连接。
表2 ColdFire5307和ASIX88796L连接表
这样连接就使得ASIX88796L挂在了ColdFire5307的外部总线上,可以通过片选信号5来访问外设ASIX88796L。其中BE0和BE1是16位数据线的高低字节单独的选择信号,它们使得ColdFire5307可以单独读写ASIX88796L的8位寄存器,而不需要一次访问16位寄存器。
(3) SDRAM电路部分
作为32位高性能嵌入式微处理器,ColdFire5307内部自带DRAM控制器,可以外接EDO的DRAM和同步DRAM(也就是SDRAM)。因为EDO DRAM在嵌入式系统中已经不常使用,因此在100Mbps以太网控制模块中使用了价格低廉、容量巨大的SDRAM。这种SDRAM和PC上使用的SDRAM内存条上面的SDRAM芯片是同样的,因此价格很低,非常适合系统使用。