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