英創工控主板以多串口和多網口作為特色,已經推出了多種擴展方案,被用戶廣泛使用在工控領域中。為了滿足更多的通訊接口需求,英創公司推出了基于ESM7000或ESM6802主板,具有30路串口+6路網口的整機方案。該方案由主板自帶的6路串口和2路網口,加上擴展出24路串口和4路網口構成,其接口資源應該能滿足絕大部分的應用需求了。
主板型號 | 板載串口 | 板載網口 | 擴展串口 | 擴展網口 |
ESM6802 | 6路 | 2路 | 24路 | 4路 |
ESM7000 | 6路 | 2路 | 24路 | 4路 |
擴展原理
硬件組成
英創公司設計了兩款擴展模塊來實現這一擴展方案,它們是24路串口擴展模塊ETA524和4路100M以太網口模塊ETA8152。用戶可利用英創公司成熟的評估套件,對這兩個模塊同時進行評估。
ETA524模塊通過ISA總線擴展來實現24路串口,所擴展的每一路串口最高波特率均可達到115200bps,信號電平均為3.3V TTL。模塊外形尺寸為70mm×46mm,與主板一樣是插在應用底板上工作。ETA524的這種設計使得用戶既能快速方便的對它進行評估,又能很好的融入用戶自己的產品設計中。在用戶自己做應用底板時,僅需要在應用底板上對每路串口做適當驅動即可,ETA524可以作為一個“器件”背插在用戶的應用底板上,以獲得最佳的數據傳輸性能。
ETA524串口擴展模塊
其中CN1是ETA524和精簡ISA總線連接的接口,定義如下圖:
ISA總線接口信號 | CN1 | ISA總線接口信號 | |
PIN# | PIN# | ||
RESET#,復位,低電平有效 | 1 | 2 | ISA_ADV#,地址鎖存,低電平有效 |
ISA_SD0,地址數據總線 | 3 | 4 | ISA_SD4,地址數據總線 |
ISA_SD1,地址數據總線 | 5 | 6 | ISA_SD5,地址數據總線 |
ISA_SD2,地址數據總線 | 7 | 8 | ISA_SD6,地址數據總線 |
ISA_SD3,地址數據總線 | 9 | 10 | ISA_SD7,地址數據總線 |
MSL#,模塊選擇 | 11 | 12 | ISA_WE#,數據寫,低電平有效 |
GPIO9,中斷IRQ4,上升沿有效 | 13 | 14 | ISA_RD#,數據讀,低電平有效 |
GPIO8,中斷IRQ3,上升沿有效 | 15 | 16 | ISA_CS#,總線片選,低電平有效 |
GPIO25,中斷IRQ2,上升沿有效 | 17 | 18 | +5V,電源輸入 |
GPIO24,中斷IRQ1,上升沿有效 | 19 | 20 | GND,公共地 |
CN2-CN4分別是擴展出來的串口,定義如下:
接口信號 | CN3 | 接口信號 | |
PIN# | PIN# | ||
COM1_TXD | 1 | 2 | COM1_RXD |
COM2_TXD | 3 | 4 | COM2_RXD |
COM3_TXD | 5 | 6 | COM3_RXD |
COM4_TXD | 7 | 8 | COM4_RXD |
COM5_TXD | 9 | 10 | COM5_RXD |
COM6_TXD | 11 | 12 | COM6_RXD |
GND,公共地 | 13 | 14 | VCC,+5V電源輸出 |
COM7_TXD | 15 | 16 | COM7_RXD |
接口信號 | CN2 | 接口信號 | |
PIN# | PIN# | ||
COM8_TXD | 1 | 2 | COM8_RXD |
COM9_TXD | 3 | 4 | COM9_RXD |
COM10_TXD | 5 | 6 | COM10_RXD |
COM11_TXD | 7 | 8 | COM11_RXD |
COM12_TXD | 9 | 10 | COM12_RXD |
COM13_TXD | 11 | 12 | COM13_RXD |
COM14_TXD | 13 | 14 | COM14_RXD |
COM15_TXD | 15 | 16 | COM15_RXD |
COM16_TXD | 17 | 18 | COM16_RXD |
COM17_TXD | 19 | 20 | COM17_RXD |
接口信號 | CN4 | 接口信號 | |
PIN# | PIN# | ||
COM18_TXD | 1 | 2 | COM18_RXD |
COM19_TXD | 3 | 4 | COM19_RXD |
COM20_TXD | 5 | 6 | COM20_RXD |
COM21_TXD | 7 | 8 | COM21_RXD |
COM22_TXD | 9 | 10 | COM22_RXD |
GND,公共地 | 11 | 12 | VCC,+5V電源輸出 |
COM23_TXD | 13 | 14 | COM23_RXD |
COM24_TXD | 15 | 16 | COM24_RXD |
引出的串口均為TTL信號,用戶可根據需求在外部進行轉換。例如轉換成RS232或者RS485,英創公司在光盤資料中都提供有電路供用戶參考。
網絡擴展模塊ETA8152集成了4片r8152芯片,可以通過USB擴展出4路網口,單獨一路擴展網口的速度均可以達到90Mbit/s以上。如果同時使用,每一路速度可以達到40Mbit/s以上。
ETA8152采用了mini-PCIe模塊的標準尺寸,使模塊安裝極為方便,所有的高速網絡信號集中在一個插座上,按常規PCB布線即可連接至底板RJ45網口座。
ETA8152網絡擴展模塊
ETA8152的管腳定義如下:
ISA總線接口信號 | ISA | ISA總線接口信號 | |
PIN# | PIN# | ||
ETH4_RXP,以太網4差分輸入 | 51 | 52 | +3.3V 電源輸入 |
ETH4_RXN,以太網4差分輸入 | 49 | 50 | 電源地(GND) |
ETH4_TXP,以太網4差分輸出 | 47 | 48 | - |
ETH4_TXN,以太網4差分輸出 | 45 | 46 | ETH4_LED_ACT_B,數據指示 |
ETH3_RXP,以太網3差分輸入 | 43 | 44 | ETH4_LED_LINK_B,連接指示 |
ETH3_RXN,以太網3差分輸入 | 41 | 42 | ETH3_LED_ACT_B,數據指示 |
ETH3_TXP,以太網3差分輸出 | 39 | 40 | 電源地(GND) |
ETH3_TXN,以太網3差分輸出 | 37 | 38 | USB_DP,USB差分信號 |
電源地(GND) | 35 | 36 | USB_DN,USB差分信號 |
ETH2_RXP,以太網2差分輸入 | 33 | 34 | 電源地(GND) |
ETH2_RXN,以太網2差分輸入 | 31 | 32 | I2C_SDA,I2C配置管腳 |
電源地(GND) | 29 | 30 | I2C_SCL,I2C配置管腳 |
電源地(GND) | 27 | 28 | - |
ETH2_TXP,以太網2差分輸出 | 25 | 26 | 電源地(GND) |
ETH2_TXN,以太網2差分輸出 | 23 | 24 | - |
電源地(GND) | 21 | 22 | RESET_B#,外部復位信號 |
ETH2_LED_ACT_B,數據指示 | 19 | 20 | - |
ETH2_LED_LINK_B,連接指示 | 17 | 18 | 電源地(GND) |
Mechanical Key | |||
電源地(GND) | 15 | 16 | +5V 電源輸入 |
ETH1_RXP,以太網1差分輸入 | 13 | 14 | +5V 電源輸入 |
ETH1_RXN,以太網1差分輸入 | 11 | 12 | +5V 電源輸入 |
電源地(GND) | 9 | 10 | - |
ETH1_LED_ACT_B,數據指示 | 7 | 8 | ETH3_LED_LINK_B,連接指示 |
ETH1_TXP,以太網1差分輸出 | 5 | 6 | - |
ETH1_TXN,以太網1差分輸出 | 3 | 4 | 電源地(GND) |
ETH1_LED_LINK_B,連接指示 | 1 | 2 | +3.3V 電源輸入 |
其中I2C總線是用來給擴展網口配置MAC地址的,英創公司在ETA8152模塊出廠的時候,會為每一路網口燒寫一個唯一的MAC地址。所以硬件上需要將主板的I2C總線信號接入,在加載驅動的時候系統會調用這一路I2C總線,加載完成后就會釋放I2C總線資源,不會影響用戶程序調用I2C總線。
用戶在底板上就只需要連接網絡變壓器和RJ45接頭,我們隨便以一路為例,給出原理圖(圖中的RJ45是帶有網絡變壓器的):
接口電路圖
用戶使用ESMARC_ISA_EVB可以方便的評估整個方案,連接如下圖所示:
評估板連接示意圖
軟件開發
ETA524和ETA8152模塊的驅動英創公司已經調試好并且以內核模塊的形式集成在板卡中了,用戶只需要調用命令加載驅動就可以生成標準的設備節點來操作,這兩個模塊的驅動分別為eta524.ko和r8152.ko。驅動加載后,系統就能夠識別到擴展模塊,并生成相應的設備節點,通過設備節點,用戶就能夠使用標準的API函數來操作擴展了。在主板的命令行輸入modprobe命令就可以加載:
加載ETA528的驅動
從圖上可以看到加載驅動后,生成了24個串口設備(ttyS7-ttyS30)。接下來加載ETA8152模塊的驅動,方法相同:
加載ETA8152的驅動
可以看到驅動加載后,系統生成了eth2-eth5四個新的網絡設備。
不論是串口還是網絡,加載驅動生成的設備節點都是Linux標準的設備節點,所以用戶在使用的時候操作方法也和標準的設備相同,只需要更改程序中對應的設別節點即可。用戶可利用英創公司提供的串口和網絡通訊應用程序源代碼,快速評估此方案基本性能是否滿足其具體的應用需求,幫助用戶縮短評估和開發的周期。
性能測試
英創公司針對這套擴展方案進行性能上的測試,使用ESM7000核心板搭建了測試環境。首先使用iperf3工具測試擴展網口的速度,在PC端搭建好服務器后,在板卡中運行iperf3工具連接,服務器測試結果截圖如下:
網絡帶寬測試
圖片中端口號5201為核心板自帶網口eth0,端口號5202為核心板自帶網口eth1,端口號5203-5206分別對應擴展網口1-4。因為測試網絡環境為千兆網絡環境,所以主板千兆網口eth0的速度會受到其他網口的影響。從測試結果可以看到,在同時使用的情況下,擴展網口的速度是可以達到40Mbit/s以上的。
下面對擴展串口進行測試,測試程序會打開每一路擴展串口,波特率設置為115200bps,每3ms發送9個字節的數據,即每秒發送3000個字節的數據,根據115200波特率的滿負荷計算,程序占用了每一路串口26%左右的負載。為了更加貼近實際使用情況,同時將所有擴展網口打開進行通訊,使網絡的負載大約也占用20%左右。
在這樣的條件下,對串口收發數據進行長時間的測試,當收到數據有錯誤,程序會打印出來,經過3個小時的測試,所有擴展串口收發均正常,CPU整體負載如下:
系統總負載
可以看到系統總負載大約為56%,測試程序test_multiserial占用CPU為27.2%,截圖中top命令打印出的其余項為每一路串口通訊所占用的CPU資源,一共為24項,每一路占用的資源在2.3%-3.9%,是十分低的。需要注意的是ESM7000為雙核,所以top指令打印出來的CPU占用率需要除以2才是整個CPU的占用率。
在實際應用中負載通常會更小一些,將負載提升上來是為了測試整套方案的性能,在此時的負載情況下,擴展串口與網口通訊均保持正常和穩定。
成都英創信息技術有限公司 028-8618 0660