基于PC104總線的嵌入式以太網(wǎng)卡設計
引言
近幾年來,PC機技術向嵌入式應用領域滲透的步伐逐漸加大,嵌入式PC機以其超小的體積、極低的功耗散熱,無需機箱和底板就可直接疊裝組合成各種系統(tǒng)而受到用戶的歡迎,因而具有巨大的應用潛力。早期的嵌入式PC機產(chǎn)品是基于8位和16位的ISA總線的標準化母板的PC機,后來又開發(fā)出多種小型化嵌入式PC產(chǎn)品。當前,國際上小型化嵌入式PC產(chǎn)品中,較有代表性的當數(shù)PC104,其尺寸僅為9.14cm9.65cm,不用插板和總線母板,模塊之間采用層疊式封裝。PC104與ISA規(guī)范完全兼容。因此,用戶能夠充分利用目前被廣泛認可的PC結構體系、現(xiàn)有的軟硬件資源,提供自己的需求組合成更多的功能,開發(fā)出新型的PC104產(chǎn)品,以大大縮短產(chǎn)品開發(fā)周期及成本。
隨著信息網(wǎng)絡技術的發(fā)展,工業(yè)現(xiàn)場應用中往往存在大量的設備上網(wǎng)的需求。目前,為了實現(xiàn)網(wǎng)絡化系統(tǒng),工業(yè)設備都必須以網(wǎng)絡終端的形式出現(xiàn)在系統(tǒng)中。由于工業(yè)控制系統(tǒng)設備的多樣性和分布性,智能模塊方式的嵌入式終端已成為主流設備控制方式,而這種網(wǎng)絡終端大多用單片機或數(shù)字信號處理器來實現(xiàn)。在功能單一及性能要求不高的情況下,采用8位或16位的MCU往往滿足了現(xiàn)場要求。隨著硬件成本的降低及市場上需要更大功率、復雜而功能豐富的嵌入應用的增加,在嵌入式處理器的高端產(chǎn)品市場上,32位機器得到了很大的成長空間。典型的有Advanced RISC Machines公司的ARM系列、IBM及Motorola公司的PowerPC、Silicon Graphics公司的MIPS芯片等。Intel公司也在它原有的X86系列中專門增加了一種產(chǎn)品系列386EX,其軟件與其它X86微處理器保持完全一致。基于此,本文提出了一種利用Intel 386EX嵌入式微處理器設計智能以太網(wǎng)擴展模塊NP104的方法。利用此模塊,可以實現(xiàn)工業(yè)現(xiàn)場應用中基于PC104或工業(yè)PC的智能電子設備快速上網(wǎng)的需求。
1 基本組成及功能概述
NP104是一款支持PC104總線的智能以太網(wǎng)擴展模塊。NP104占用PC104總線(或ISA總線)上的一段存儲器空間(約4KB),通過高速雙口RAM與主系統(tǒng)交換數(shù)據(jù)。NP104智能網(wǎng)絡擴展模塊的主要功能包括以下兩方面:實時接收系統(tǒng)CPU提交的數(shù)據(jù),按照TCP/IP協(xié)議進行封裝,通過板的以太網(wǎng)控制接口發(fā)往目的地;自動接收網(wǎng)絡上發(fā)來的數(shù)據(jù),并進行解包得到應用數(shù)據(jù),放入雙口RAM供系統(tǒng)CPU讀取。
NP104主要針對基于PC104或工業(yè)PC的智能電子設備,需要快速實現(xiàn)設備網(wǎng)絡化的應用領域而設計的。由于是通過雙口RAM與系統(tǒng)CPU交換數(shù)據(jù),客戶只需在現(xiàn)有設備中加插1張NP104板卡,在程序中增加簡單的幾行代碼,即可實現(xiàn)通過網(wǎng)絡傳送數(shù)據(jù)的目的,最大限度地縮短新產(chǎn)品的入市時間。另外,NP104支持DOC2000大容量電子盤,可實現(xiàn)嵌入式Web服務器等高級網(wǎng)絡應用。
圖1是NP104的硬件功能框圖。從圖1可知,NP104是一個基于Intel 386EX的完整嵌入式系統(tǒng),其主要技術指標如下:
*僅使用PC104的XT總線部分,可與所有PC104主板或帶PC104接口的工控PC主板配合使用;
*系統(tǒng)CPU對NP104上的雙口RAM讀寫速度不低于500 KB/s,保證PC104讀寫速度不影響網(wǎng)絡傳輸速度;
*NP104上386EX的工作時鐘為40MHz,一般指令周期100ns,滿足絕大部分應用的需求;
*標準10Mbps以太網(wǎng)接口,10Base-T連接方式;
*雙口RAM占用的存儲器空間可配置;
*可使用PC104的IRQ5中斷資源,以便快速響應通信請求;
*標準PC104板卡尺寸(96mm90mm)。
NP104內(nèi)部主要技術指標為:
*48MHz Intel386EX高性能、32位微處理器;
*512KB Flash存儲器,帶磁盤文件驅(qū)動軟件接口;
*10Base-T以太網(wǎng)控制接口,NE2000兼容;
*1個標準RS232C串口(9線);
*可直接支持M-System公司的DiskOnChip2000系列大容量電子盤芯片;
*供電電壓:5(10.05)V,工作電流570mA;
*標準PC104尺寸:96mm90mm,提供標準安裝孔;
*工作溫度-10~65℃,工作濕度為5%~95%,滿足國際GB7261第21章規(guī)定的電子產(chǎn)品濕熱試驗要求;
*NP104可保證不影響其嵌入的整機對圖像GB6162規(guī)定的干擾試驗以及國際GB/T14598.10規(guī)定的參級快速瞬變干擾試驗的通過。
2 系統(tǒng)設計說明
NP104內(nèi)部是一個以386EX為核心的嵌入式系統(tǒng),通過雙口RAM與PC104主CPU進行數(shù)據(jù)交換。以下把NP104擴展板內(nèi)CPU稱為386EX,PC104上的系統(tǒng)CPU稱為主CPU。作為10 Mbps以太網(wǎng)接口,采用8位數(shù)據(jù)總線寬度即可滿足應用需求。雙口RAM器件選用4K8bit的IDT7134LA,器件封裝為PLCC52。
雙口RAM數(shù)據(jù)區(qū)定義如表1所列。
從表1可看出,雙口RAM被分成2個基本部分,分別對應主CPU從NP104板中讀取來自于網(wǎng)絡的應用數(shù)據(jù),以及主CPU把應用數(shù)據(jù)寫入NP104緩沖區(qū),NP104按照命令作相應的操作。以下詳細描述每一數(shù)據(jù)段的功能定義。
表1
地址偏移 | 基本描述 | 主CPU | 386EX |
0x0000x03f | 狀態(tài)字節(jié),輸入數(shù)據(jù)包準備好;硬件敏感 | 可讀、寫 | 可讀、寫 |
0x0400x07f | 控制字節(jié),主CPU中斷使能;硬件敏感 | 可讀、寫 | 只讀 |
0x0800x0bf | 保留;硬件敏感 | ||
0x0c00x0ff | 保留;硬件敏感 | ||
0x1000x103 | 輸入緩沖區(qū)初始化狀態(tài)(=0x2345678) | 只讀 | 可讀、寫 |
0x1080x10f | 信號燈字節(jié)(0:空閑,1:忙):先讀后寫 | 可讀、寫 | 可讀、寫 |
0x1100x1ff | 返回參數(shù)區(qū),240字節(jié) | 只讀 | 可讀、寫 |
0x2000x7ff | 輸入數(shù)據(jù)緩沖區(qū),1 536字節(jié) | 只讀 | 可讀、寫 |
0x8000x83f | 狀態(tài)字節(jié),輸出數(shù)據(jù)包準備好;硬件敏感 | 可讀、寫 | 只讀 |
0x7400x87f | 控制字節(jié),386EX中斷使能;硬件敏感 | 可讀、寫 | 只讀 |
0x8800x8bf | 保留;硬件敏感 | 可讀、寫 | 只讀 |
0x8c00x8ff | 保留;硬件敏感 | 可讀、寫 | 只讀 |
0x9000x903 | 輸出緩沖區(qū)初始化狀態(tài)(=0x12345678) | 可讀、寫 | 只讀 |
0x9080x90f | 信號燈字節(jié)(0:打開,1:鎖定):先讀后寫 | 可讀、寫 | 可讀、寫 |
0x90f0x9ff | 輸出參數(shù),240字節(jié) | 可讀、寫 | 只讀 |
0xa000xfff | 輸出數(shù)據(jù)緩沖區(qū),1 536字節(jié) | 可讀、寫 | 只讀 |
(1)初始化過程
主CPU對輸入緩沖區(qū)進行初始化,順序如下:①輸入數(shù)據(jù)包準備好狀態(tài)字節(jié)清零;②信號燈字節(jié)清零,即空閑;③根據(jù)需要設備中斷使能位;④初始化狀態(tài)置為0x12345678。386EX對輸出緩沖區(qū)進行初始化,順序如下:①輸出數(shù)據(jù)包準備好狀態(tài)字節(jié)清零;②信號燈字節(jié)清零,即空閑狀態(tài);③根據(jù)需要設備中斷使能位;④初始化狀態(tài)置為0x12345678。
(2)信號燈和狀態(tài)字節(jié)的定義及操作
為了保證雙邊CPU都充分發(fā)揮其作用,發(fā)生在NP104板上雙口RAM的數(shù)據(jù)通信,不采用阻塞式的握手線方式,而是采用非阻塞式的信號燈的通信方式?;静僮髟瓌t為:當CPU要對某一緩沖區(qū)數(shù)據(jù)進行讀或?qū)懖僮鲿r,需首先檢查相應的信號燈字節(jié),若信號燈處于空閑,則把信號燈設置為忙。之后,就可對相應緩沖區(qū)進行操作了,操作完成后,再把信號燈設置為空閑。如果僅僅是查詢狀態(tài),不需要操作信號燈。對緩沖區(qū)進行任何操作的前提是緩沖區(qū)的初始化狀態(tài)字(長整型)已被設置為0x12345678。
(3)系統(tǒng)主CPU與386EX數(shù)據(jù)通信過程
在PC104系統(tǒng)主CPU與NP104通信過程中,主CPU與386EX通過雙口RAM進行數(shù)據(jù)的收發(fā)工作。系統(tǒng)CPU向輸出緩沖寫入數(shù)據(jù),則386EX從輸出緩沖區(qū)讀取數(shù)據(jù)。相應地,386EX從網(wǎng)絡中接收數(shù)據(jù)并寫放輸入緩沖區(qū)中,然后,系統(tǒng)CPU從輸入緩沖區(qū)中讀取數(shù)據(jù)。這里,輸入及輸出緩沖區(qū)都是相對于系統(tǒng)主CPU而言的。
(4)中斷使能字節(jié)及使用
NP104卡支持主CPU采用中斷方式來讀取輸入緩沖區(qū)的數(shù)據(jù),之前主CPU需進行設置相應的中斷使能位為1的操作。當386EX把RcvDatRdy置1時,NP104卡有專門的硬件邏輯檢測這一操作,從而設置對主CPU的中斷請求線IRQ#為1;當主CPU把RcvDatRdy清0時,NP104卡將使中斷請求線IRQ#復0。相應地,386EX也可以采用中斷方式來讀取輸出緩沖區(qū)的數(shù)據(jù),之間386EX需進行設置相應的中斷使能位1的操作。當主CPU把SndDatRdy置1時,NP104卡有專門的硬件邏輯檢測這一操作,并設置對386EX的中斷請求線INT3(IRQ7)為1;當386EX把SndDatTdy清0時,NP104卡將使中斷請求線INT3復為0。
(5)資源分配說明
雙口RAM在386EX的存儲空間映射區(qū)域為A8000H~A8FFFH;雙口RAM在PC104空間映射區(qū)域為D8000H~D8FFFH;512K電子盤的頁地址寄存器口地址為0X300H。
3 模塊驅(qū)動程序設計及測試
嵌入式應用軟件典型的開發(fā)方式是“宿主機/目標機”方式。首先,利用宿主機上豐富的資源及良好的開發(fā)環(huán)境開發(fā)和仿真調(diào)試目標機上的軟件。然后,通過串行口或網(wǎng)絡將交叉編譯生成的目標代碼傳輸并裝載到目標機上。最后,目標機在特定的環(huán)境下運行。
PC104正常工作必須要有驅(qū)動程序的支持。此驅(qū)動程序采用ANSI C語言編寫,由于系統(tǒng)PC兼容的程序運行環(huán)境,因此可以充分利用PC上現(xiàn)有的廉價軟件資源,而無需專門的開發(fā)調(diào)試系統(tǒng)。程序在Borland C3.0集成開發(fā)環(huán)境下實現(xiàn)。通過與封裝好的TCP/IP協(xié)議棧的鏈接,NP104提供了雙口RAM的驅(qū)動程序。驅(qū)動程序由包含幾個源文件的工程文件通過編譯連接TCP/IP協(xié)議棧而生成.EXE文件,通過BC遠程下載到NP104硬件系統(tǒng)的電子盤中。系統(tǒng)BIOS對此.EXE文件進行調(diào)用,一旦嵌入式擴展模塊的設備正常運行,系統(tǒng)就具備了網(wǎng)絡通信能力,其基本的程序流程框圖如圖2所示。由此可見,在系統(tǒng)正常工作狀態(tài)下,NP104一直處于循環(huán)檢查以太網(wǎng)及中斷響應主系統(tǒng)命令的狀態(tài),以保證主系統(tǒng)設備與網(wǎng)絡的正常通信。相應地,對于主系統(tǒng)而言,NP104的接口驅(qū)動程序包括12個功能調(diào)用,即雙口RAM初始化、初始化以太網(wǎng)接口、建立與關閉TCP連接、讀取TCP/IP網(wǎng)絡接口數(shù)據(jù)及發(fā)送數(shù)據(jù)至TCP/IP網(wǎng)絡接口等功能。本系統(tǒng)中的軟件是在基于DOS操作系統(tǒng)之上運行的,另外本系統(tǒng)亦可提供基于多任務RTOS如VRTX、DeltaOS的應用環(huán)境。
系統(tǒng)測試時,NP104與PC104主板構成基本環(huán)境,NP104與局域網(wǎng)相接,PC104主板上的測試程序(采用BC編寫)通過調(diào)用NP104接口程序,與LAN上的上位機進行通信。同時,在LAN上連接上位PC機,運行相應的測試程序(采用VC編寫),以檢驗NP104的通信功能。在系統(tǒng)測試過程中,盡可能地考慮了通信過程中可能出現(xiàn)的各種異常情況,并采取了相應的處理措施。比如在通信過程中,NP104運行異常中止并重新復位運行后,此時PC104能夠及時檢查到NP104的復位信息;另外,當PC104主機出現(xiàn)異常重新啟動后,可使用InitNP104()函數(shù)重新啟動NP104。在此函數(shù)中,通過軟件的方式實現(xiàn)了硬件的復位,以確保NP104正常通信。
結束語
利用Intel嵌入式微處理器386EX設計的基于PC104總線的智能網(wǎng)絡擴展模塊可以滿足基于PC104總線或工業(yè)PC的智能電子設備的快速上網(wǎng)需求,在中國電力科學研究院電力電子公司的現(xiàn)場應用中,利用此方法設計的模塊已能正常運行。隨著嵌入式應用的日益深入,各種現(xiàn)場應用對高性能及實時性的求也不斷增加,RTOS將在嵌入式系統(tǒng)設計中占據(jù)主導地位,嵌入式Linux也將在嵌入式系統(tǒng)中得到越來越廣泛的應用?;赑owerPC、MIPS、StrongARM微處理器的產(chǎn)品也將不斷出現(xiàn)在未來的現(xiàn)場應用中。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論