30路串口+6路网口的通讯管理机方案

 2019-11-29 10:34:36     作者:黄志超    

  英创工控主板以多串口和多网口作为特色,已经推出了多种扩展方案,被用户广泛使用在工控领域中。为了满足更多的通讯接口需求,英创公司推出了基于ESM7000或ESM6802主板,具有30路串口+6路网口的整机方案。该方案由主板自带的6路串口和2路网口,加上扩展出24路串口和4路网口构成,其接口资源应该能满足绝大部分的应用需求了。


主板型号板载串口板载网口扩展串口扩展网口
ESM68026路2路24路4路
ESM70006路2路24路4路


imx6ull,imx7,30路串口+6路网口的通讯管理机方案

扩展原理


硬件组成


  英创公司设计了两款扩展模块来实现这一扩展方案,它们是24路串口扩展模块ETA524和4路100M以太网口模块ETA8152。用户可利用英创公司成熟的评估套件,对这两个模块同时进行评估。


  ETA524模块通过ISA总线扩展来实现24路串口,所扩展的每一路串口最高波特率均可达到115200bps,信号电平均为3.3V TTL。模块外形尺寸为70mm×46mm,与主板一样是插在应用底板上工作。ETA524的这种设计使得用户既能快速方便的对它进行评估,又能很好的融入用户自己的产品设计中。在用户自己做应用底板时,仅需要在应用底板上对每路串口做适当驱动即可,ETA524可以作为一个“器件”背插在用户的应用底板上,以获得最佳的数据传输性能。


imx6ull,imx7,30路串口+6路网口的通讯管理机方案

ETA524串口扩展模块


  其中CN1是ETA524和精简ISA总线连接的接口,定义如下图:


ISA总线接口信号

CN1ISA总线接口信号

PIN#

PIN#

RESET#,复位,低电平有效

12

ISA_ADV#,地址锁存,低电平有效

ISA_SD0,地址数据总线

34

ISA_SD4,地址数据总线

ISA_SD1,地址数据总线

56

ISA_SD5,地址数据总线

ISA_SD2,地址数据总线

78

ISA_SD6,地址数据总线

ISA_SD3,地址数据总线

910

ISA_SD7,地址数据总线

MSL#,模块选择

1112

ISA_WE#,数据写,低电平有效

GPIO9,中断IRQ4,上升沿有效

1314

ISA_RD#,数据读,低电平有效

GPIO8,中断IRQ3,上升沿有效

1516

ISA_CS#,总线片选,低电平有效

GPIO25,中断IRQ2,上升沿有效

1718

+5V,电源输入

GPIO24,中断IRQ1,上升沿有效

1920

GND,公共地


  CN2-CN4分别是扩展出来的串口,定义如下:


接口信号

CN3接口信号

PIN#

PIN#

COM1_TXD

12

COM1_RXD

COM2_TXD34COM2_RXD
COM3_TXD56COM3_RXD
COM4_TXD78COM4_RXD
COM5_TXD910COM5_RXD
COM6_TXD1112COM6_RXD
GND,公共地1314VCC,+5V电源输出
COM7_TXD1516COM7_RXD


接口信号

CN2接口信号

PIN#

PIN#

COM8_TXD

12COM8_RXD

COM9_TXD

34COM9_RXD
COM10_TXD56COM10_RXD
COM11_TXD78COM11_RXD
COM12_TXD910COM12_RXD
COM13_TXD1112COM13_RXD
COM14_TXD1314COM14_RXD
COM15_TXD1516COM15_RXD
COM16_TXD1718COM16_RXD
COM17_TXD1920COM17_RXD

 

接口信号

CN4接口信号

PIN#

PIN#

COM18_TXD12COM18_RXD
COM19_TXD34COM19_RXD
COM20_TXD56COM20_RXD
COM21_TXD78COM21_RXD
COM22_TXD910COM22_RXD
GND,公共地1112VCC,+5V电源输出
COM23_TXD1314COM23_RXD
COM24_TXD1516COM24_RXD

 

  引出的串口均为TTL信号,用户可根据需求在外部进行转换。例如转换成RS232或者RS485,英创公司在光盘资料中都提供有电路供用户参考。


  网络扩展模块ETA8152集成了4片r8152芯片,可以通过USB扩展出4路网口,单独一路扩展网口的速度均可以达到90Mbit/s以上。如果同时使用,每一路速度可以达到40Mbit/s以上。


  ETA8152采用了mini-PCIe模块的标准尺寸,使模块安装极为方便,所有的高速网络信号集中在一个插座上,按常规PCB布线即可连接至底板RJ45网口座。


imx6ull,imx7,eta8152侧面.png

ETA8152网络扩展模块


  ETA8152的管脚定义如下:


ISA总线接口信号

ISAISA总线接口信号

PIN#

PIN#

ETH4_RXP,以太网4差分输入5152+3.3V 电源输入
ETH4_RXN,以太网4差分输入4950电源地(GND)
ETH4_TXP,以太网4差分输出4748-
ETH4_TXN,以太网4差分输出4546ETH4_LED_ACT_B,数据指示
ETH3_RXP,以太网3差分输入4344ETH4_LED_LINK_B,连接指示
ETH3_RXN,以太网3差分输入4142ETH3_LED_ACT_B,数据指示
ETH3_TXP,以太网3差分输出3940电源地(GND)
ETH3_TXN,以太网3差分输出3738USB_DP,USB差分信号
电源地(GND)3536USB_DN,USB差分信号
ETH2_RXP,以太网2差分输入3334电源地(GND)
ETH2_RXN,以太网2差分输入3132I2C_SDA,I2C配置管脚
电源地(GND)2930I2C_SCL,I2C配置管脚
电源地(GND)2728-
ETH2_TXP,以太网2差分输出2526电源地(GND)
ETH2_TXN,以太网2差分输出2324-
电源地(GND)2122RESET_B#,外部复位信号
ETH2_LED_ACT_B,数据指示1920-
ETH2_LED_LINK_B,连接指示1718电源地(GND)
Mechanical Key
电源地(GND)1516+5V 电源输入
ETH1_RXP,以太网1差分输入1314+5V 电源输入
ETH1_RXN,以太网1差分输入1112+5V 电源输入
电源地(GND)910-
ETH1_LED_ACT_B,数据指示78ETH3_LED_LINK_B,连接指示
ETH1_TXP,以太网1差分输出56-
ETH1_TXN,以太网1差分输出34电源地(GND)
ETH1_LED_LINK_B,连接指示12+3.3V 电源输入


  其中I2C总线是用来给扩展网口配置MAC地址的,英创公司在ETA8152模块出厂的时候,会为每一路网口烧写一个唯一的MAC地址。所以硬件上需要将主板的I2C总线信号接入,在加载驱动的时候系统会调用这一路I2C总线,加载完成后就会释放I2C总线资源,不会影响用户程序调用I2C总线。


  用户在底板上就只需要连接网络变压器和RJ45接头,我们随便以一路为例,给出原理图(图中的RJ45是带有网络变压器的):


imx6ull,imx7,30路串口+6路网口的通讯管理机方案.png

接口电路图


  用户使用ESMARC_ISA_EVB可以方便的评估整个方案,连接如下图所示:


imx6ull,imx7,30路串口+6路网口的通讯管理机方案.png

评估板连接示意图


软件开发


  ETA524和ETA8152模块的驱动英创公司已经调试好并且以内核模块的形式集成在板卡中了,用户只需要调用命令加载驱动就可以生成标准的设备节点来操作,这两个模块的驱动分别为eta524.ko和r8152.ko。驱动加载后,系统就能够识别到扩展模块,并生成相应的设备节点,通过设备节点,用户就能够使用标准的API函数来操作扩展了。在主板的命令行输入modprobe命令就可以加载:


imx6ull,imx7,30路串口+6路网口的通讯管理机方案.png

加载ETA528的驱动


  从图上可以看到加载驱动后,生成了24个串口设备(ttyS7-ttyS30)。接下来加载ETA8152模块的驱动,方法相同:


imx6ull,imx7,30路串口+6路网口的通讯管理机方案.png

加载ETA8152的驱动


  可以看到驱动加载后,系统生成了eth2-eth5四个新的网络设备。


  不论是串口还是网络,加载驱动生成的设备节点都是Linux标准的设备节点,所以用户在使用的时候操作方法也和标准的设备相同,只需要更改程序中对应的设别节点即可。用户可利用英创公司提供的串口和网络通讯应用程序源代码,快速评估此方案基本性能是否满足其具体的应用需求,帮助用户缩短评估和开发的周期。


性能测试


  英创公司针对这套扩展方案进行性能上的测试,使用ESM7000核心板搭建了测试环境。首先使用iperf3工具测试扩展网口的速度,在PC端搭建好服务器后,在板卡中运行iperf3工具连接,服务器测试结果截图如下:


imx6ull,imx7,30路串口+6路网口的通讯管理机方案.png

网络带宽测试


  图片中端口号5201为核心板自带网口eth0,端口号5202为核心板自带网口eth1,端口号5203-5206分别对应扩展网口1-4。因为测试网络环境为千兆网络环境,所以主板千兆网口eth0的速度会受到其他网口的影响。从测试结果可以看到,在同时使用的情况下,扩展网口的速度是可以达到40Mbit/s以上的。


  下面对扩展串口进行测试,测试程序会打开每一路扩展串口,波特率设置为115200bps,每3ms发送9个字节的数据,即每秒发送3000个字节的数据,根据115200波特率的满负荷计算,程序占用了每一路串口26%左右的负载。为了更加贴近实际使用情况,同时将所有扩展网口打开进行通讯,使网络的负载大约也占用20%左右。


  在这样的条件下,对串口收发数据进行长时间的测试,当收到数据有错误,程序会打印出来,经过3个小时的测试,所有扩展串口收发均正常,CPU整体负载如下:


imx6ull,imx7,30路串口+6路网口的通讯管理机方案.png

系统总负载


  可以看到系统总负载大约为56%,测试程序test_multiserial占用CPU为27.2%,截图中top命令打印出的其余项为每一路串口通讯所占用的CPU资源,一共为24项,每一路占用的资源在2.3%-3.9%,是十分低的。需要注意的是ESM7000为双核,所以top指令打印出来的CPU占用率需要除以2才是整个CPU的占用率。


  在实际应用中负载通常会更小一些,将负载提升上来是为了测试整套方案的性能,在此时的负载情况下,扩展串口与网口通讯均保持正常和稳定。