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