日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]摘要:介紹以8051系列單片機(jī)系統(tǒng)為例的嵌入式系統(tǒng)與10Mbps以太網(wǎng)控制器芯片DM9008的硬件接口電路的實(shí)現(xiàn)及編程方法。關(guān)鍵詞:嵌入式系統(tǒng) 以太網(wǎng) DM9008芯片 單片機(jī) TCP/IP協(xié)

摘要:介紹以8051系列單片機(jī)系統(tǒng)為例的嵌入式系統(tǒng)與10Mbps以太網(wǎng)控制器芯片DM9008的硬件接口電路的實(shí)現(xiàn)及編程方法。

關(guān)鍵詞:嵌入式系統(tǒng) 以太網(wǎng) DM9008芯片 單片機(jī) TCP/IP協(xié)議

目前,以太網(wǎng)(Ethernet)協(xié)議已經(jīng)非常廣泛地應(yīng)用于各種計(jì)算機(jī)網(wǎng)絡(luò),如辦公局域網(wǎng)、工業(yè)控制網(wǎng)絡(luò)、因特網(wǎng)等場(chǎng)合,并且還不斷地發(fā)展?;谝蕴W(wǎng)的新技術(shù)和聯(lián)網(wǎng)設(shè)備不斷出現(xiàn),以太網(wǎng)已經(jīng)成為事實(shí)上最常用的網(wǎng)絡(luò)標(biāo)準(zhǔn)之一。

但是,基于以太網(wǎng)的嵌入式系統(tǒng)目前并是很多。其原因除了嵌入式系統(tǒng)本身運(yùn)行速度較慢、資源較少且不足以實(shí)現(xiàn)以太網(wǎng)的各種協(xié)議外,更重要是設(shè)計(jì)以太網(wǎng)的接口及協(xié)議相對(duì)比較復(fù)雜,使人望而卻步。

本文將介紹以8051系列單片機(jī)系統(tǒng)為例的嵌入式系統(tǒng)與10Mbps以太網(wǎng)控制器芯片DM9008的接口電路實(shí)現(xiàn)及編程方法。

1 以太網(wǎng)控制器DM9008簡(jiǎn)介

DM9008是臺(tái)灣DAVICOM公司生產(chǎn)的基于ISA總線的10M超級(jí)以太網(wǎng)控制器芯片。這集成了介質(zhì)訪問控制子層(MAC)和物理層的功能,可以方便地設(shè)計(jì)基于ISA總線的系統(tǒng),也可以比較簡(jiǎn)單地與通用單片機(jī)進(jìn)行接口。

主要特點(diǎn)如下:

·實(shí)現(xiàn)IEEE 802.3協(xié)議、10BASE-T、10BASE2和10BASE5的單片貢解決方案;

·集成ISA總線接口、8K×16 SRAM、介質(zhì)訪問控制(MAC)、編解碼器(ENDEC)和10BASE-T收發(fā)器;

·與NOVELL NE2000軟件兼容;

·可選8根中斷申請(qǐng)線;

·自動(dòng)極性檢測(cè)和糾正;

·可選8、16位模式;

·外部可編程EEPROM;

·單5V電源低功耗CMOS設(shè)計(jì);

·100腳PQFP封裝。

由于該芯片功能較強(qiáng),配置有較多的引腳,但在與一般單片機(jī)接口時(shí)只需要用到其中的一部分即可完成常用的功能。

 

2 與8051單片機(jī)系統(tǒng)的接口電路

下面介紹國(guó)內(nèi)最常用的8051系列單片機(jī)與DM9008的接口電路,實(shí)現(xiàn)的網(wǎng)絡(luò)接口采用無屏蔽雙絞線(UTP)RJ-45接口。

圖1給出了8051單片機(jī)系統(tǒng)與DM9008網(wǎng)絡(luò)控制器的接口電路框圖。 8051單片機(jī)系統(tǒng)所提供的接口信號(hào)線為:P0的8位數(shù)據(jù)總線D0~D7、5根經(jīng)過鎖存的地址線A0~A4、讀信號(hào)線RD、寫信號(hào)線WR、經(jīng)過譯碼產(chǎn)生的片選線CS1和經(jīng)過反相后高電平有效地中斷請(qǐng)求線INT。這些信號(hào)線分別與DM9008的數(shù)據(jù)線低8位SD0~SD7、地址線低5位SA0~SA4、 I/O讀信號(hào)線IOR、I/O寫信號(hào)線IOW、地址使能線AEN和8根中斷請(qǐng)求線中的一根IRQ12相連。

DM9008的復(fù)位線RST與8051單片機(jī)的復(fù)位線同為高是電平有效,故在系統(tǒng)上電時(shí)同時(shí)復(fù)位。時(shí)鐘電路只需外接1個(gè)20MHz的晶振及2個(gè)電容即可。

DM9008有16根數(shù)據(jù)線,與8051單片機(jī)接口,只需用到低8位數(shù)據(jù)線,其它高8位數(shù)據(jù)線不骼,IO16接高電平或浮空,MD6/SLOT接地。地址線有SA0~SA19共20根,只用到低5位SA0~SA4與單片機(jī)相連,SA5~SA7接地、SA8~SA9 接高電平,其它高地址位全部接地。這樣對(duì)于DM9008內(nèi)部來說,I/O的基地址為300H。另外BALE、SYSCLK接地,SMEMR、MEMW、 MEMR浮空。DM9008有8根中斷請(qǐng)求線,可以先1根與8051系統(tǒng)的中斷線相連,其它7根線均浮空,所選線在EEPROM93C46中指定。

EEPROM 93C46是一個(gè)采用4線SPI串行接口的電可擦除存儲(chǔ)器,容量為64×16位(即128個(gè)字節(jié)),主要保存DM9008的配置信息,如網(wǎng)絡(luò)硬件地址、 I/O基地址、中斷線選擇等配置寄存器內(nèi)容,在DM9008復(fù)位后讀取93C46的內(nèi)容并設(shè)備內(nèi)部配置寄存器的值。如果93C46中內(nèi)容不正確,DM9008就無法正常工作。所以通常先通過編程器把配置數(shù)據(jù)寫入93C46,再把它焊在電路板上。DM9008通過EECS、EEDI、EEDO、 EECK與93C46相連。

由于本設(shè)計(jì)只使用10BASE-T,即采用無屏蔽雙絞線的RJ45接口,而 DM9008已內(nèi)置了10BASE-T的收發(fā)器,故接口部分電路比較簡(jiǎn)單,只需要外接1個(gè)隔離濾波器LAN7236即可。TPTX+、TPTX-為發(fā)送線,TPRX+、TPRX-為接收線,經(jīng)隔離后的4根線與RJ45接口相連。對(duì)于其它型號(hào)的單片機(jī),如16位單片機(jī)80C196KC等,其接口電路只需稍作修改即可改為16位數(shù)據(jù)總線方式。

3 軟件設(shè)計(jì)

DM9008的編程包括初始化、發(fā)送、接收三部分功能。在接收和發(fā)送數(shù)據(jù)以前要進(jìn)行必需的檢測(cè)和初始化。DM9008的初始化主要是設(shè)置所需的寄存器狀態(tài),建立網(wǎng)絡(luò)接口收發(fā)的條件。

網(wǎng)絡(luò)接口通過2個(gè)DMA操作來完成數(shù)據(jù)的接收和發(fā)送。本地DMA完成DMA9008與其內(nèi)部FIFO隊(duì)列之間的數(shù)據(jù)傳送,遠(yuǎn)程DMA完成DM9008與CPU之間的數(shù)據(jù)傳送。

DM9008可尋址的空間有32個(gè),分別為00H~1FH。其中00H~0FH是寄存器區(qū),00H~1FH。其中00H~0FH是寄存器區(qū),00H作為命令寄存器,通過設(shè)置可選擇3個(gè)頁(yè)面,10H~17H為數(shù)據(jù)端口,18H~1FH為復(fù)位端口。

3.1 DM9008的初始化

DM9008的具體初始化過程如下(CPU對(duì)DM9008的尋址需要加上基地址,為了描述方便,省略掉基地址直接用DM9008的內(nèi)部地址描述寄存器地址):

(1)讀入1FH端口數(shù)據(jù),再寫回該地址以啟動(dòng)DM9008工作。

(2)向命令寄存器CR(00H)寫入21H,選擇寄存器頁(yè)面0,并進(jìn)行軟件復(fù)位。

(3)設(shè)置數(shù)據(jù)結(jié)構(gòu)寄存器DCR(0EH)為48H。

(4)設(shè)置方式狀態(tài)寄存器TCR(0DH)為02H。

(5)讀出網(wǎng)絡(luò)的物理地址:

a.設(shè)置遠(yuǎn)程DMA計(jì)數(shù)器RBCR1(0BH)、RBCR0(0AH)的值為000CH;

b.設(shè)置遠(yuǎn)程DMA地址RSAR1(09H)、RSAR0(08H)的值為0000H;

c.設(shè)置命令寄存器CR(00H)為遠(yuǎn)程DMA讀,即0AH;

d.重復(fù)從數(shù)據(jù)端口(10H)讀6個(gè)字節(jié),這6個(gè)字節(jié)即網(wǎng)絡(luò)物理地址;

e.停止遠(yuǎn)程DMA,設(shè)置CR為21H,RBCR1、RBCR0為0000H。

(6)設(shè)置接收狀態(tài)寄存器RCR(0CH)為04H。

(7)劃分緩沖區(qū)接收緩沖區(qū)和發(fā)送緩沖區(qū),并建立接收緩沖環(huán)。將DM9008內(nèi)部RAM地址為4000H~4BFFH設(shè)置為發(fā)送緩沖區(qū),4C00H~7FFFH設(shè)置為接收緩沖區(qū),即設(shè)置PSTART(01H)為 4CH,PSTOP(02H)為80H,BNRY(03H)為4CH。

(8)設(shè)置CR為61H,選擇頁(yè)面1。

(9)設(shè)置網(wǎng)卡地址寄存器,把PAR0(01H)~PAR5(06H)設(shè)置為前面讀出的物理地址。

(10)設(shè)置當(dāng)前頁(yè)面寄存器CURR(07H)為PSTART+1,即4DH。

(11)清除多址寄存器,即MAR0(08H)~MAR7(0FH)為00H。

(12)設(shè)置CR為21H,選擇寄存器頁(yè)面0。

(13)清除中斷狀態(tài)寄存器ISR(07H)為0FFH。

(14)設(shè)置中斷屏蔽寄存器IMR(0FH)為3BH,即接收中斷允許、接收錯(cuò)誤中斷允許、發(fā)送錯(cuò)誤中斷允許、溢出中斷允許、計(jì)數(shù)器溢出中斷允許。

(15)設(shè)置發(fā)送設(shè)置寄存器TCR(0DH)為00H。

(16)設(shè)置CR為22H,芯片進(jìn)入工作狀態(tài)。

至此,DM9008的初始化過程完成,DM9008處于接收狀態(tài)。只要網(wǎng)絡(luò)上有可以接收的數(shù)據(jù)包,DM9008自動(dòng)將數(shù)據(jù)存入接收緩沖區(qū)并在收完后向CPU發(fā)中斷申請(qǐng)。

3.2 接收數(shù)據(jù)

DM9008收到一個(gè)完整的以太網(wǎng)數(shù)據(jù)包后,向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)DM9008的中斷申請(qǐng)后,進(jìn)入中斷服務(wù)程序并開始接收數(shù)據(jù),具體過程如下:

(1)讀出中斷狀態(tài)寄存器ISR,并寫回該寄存器。

(2)判斷是否數(shù)據(jù)接收中斷,如果不是,不執(zhí)行以下步驟。

(3)設(shè)置CR為22H,選擇頁(yè)面0。

(4)設(shè)置遠(yuǎn)程DMA地址寄存器RSAR1、RSAR0為接收地址指針,該指針高位字節(jié)初始值位PSTART+1,低位字節(jié)為0。

(5)設(shè)置遠(yuǎn)程DMA計(jì)數(shù)器RBCR1、RBCR0為0004H;

(6)設(shè)置CR為遠(yuǎn)程讀0AH,讀數(shù)據(jù)端口,讀出4個(gè)字節(jié),這4個(gè)字節(jié)第1字節(jié)表示接收狀態(tài),第2個(gè)字節(jié)為下一包開始地址指針,第3~4個(gè)字節(jié)為本數(shù)據(jù)包的長(zhǎng)度(高位字節(jié)在前)。

(7)設(shè)置CR為22H,遠(yuǎn)程DMA完成。

(8)根據(jù)接收狀態(tài)判斷數(shù)據(jù)包是否接收正確,如果接收正確,啟動(dòng)遠(yuǎn)程DMA,收取該數(shù)據(jù)包并進(jìn)行處理。

(9)結(jié)束遠(yuǎn)程DMA,設(shè)置下一次接收數(shù)據(jù)指針和接收邊界指針。

3.3 發(fā)送數(shù)據(jù)

數(shù)據(jù)的發(fā)送過程應(yīng)包含三個(gè)步驟:數(shù)據(jù)包的封裝;通過遠(yuǎn)程DMA將數(shù)據(jù)包送入DMA9008的數(shù)據(jù)發(fā)送緩沖區(qū);通過DM9008的本地DMA將數(shù)據(jù)送入FIFO進(jìn)行發(fā)送。具體過程如下:

(1)數(shù)據(jù)包在發(fā)送前應(yīng)該按規(guī)定的格式封裝好,格式如下:

目的地址(6字節(jié))源地址(6字節(jié))協(xié)議(2字節(jié))數(shù)據(jù)(不小于46字節(jié))

(2)把上面的數(shù)據(jù)包通過遠(yuǎn)程DMA寫送入DM9008的數(shù)據(jù)發(fā)送緩沖區(qū)。

a.設(shè)置CR為22H,選擇寄存器頁(yè)面0;

b.設(shè)置中斷狀態(tài)寄存器ISR為40H,清除發(fā)送完成標(biāo)志;

c.設(shè)置遠(yuǎn)程DMA地址寄存器RSAR1、RSAR0為4000H,即發(fā)送緩沖區(qū)開始地址;

d.設(shè)置遠(yuǎn)程DMA字節(jié)計(jì)數(shù)寄存器RBCR1、RBCR0為發(fā)送數(shù)據(jù)包的長(zhǎng)度;

e.設(shè)置CR為12H,設(shè)置命令寄存器為遠(yuǎn)程DMA寫;

f.往數(shù)據(jù)端口寫入發(fā)送數(shù)據(jù);

g.查詢中斷狀態(tài)寄存器ISR,等待遠(yuǎn)程DMA完成;

h.設(shè)置CR為22H,設(shè)置RBCR1、RBCR0為0,遠(yuǎn)程DMA停止;

i.設(shè)置ISR為40H,清除發(fā)送完成標(biāo)志。

(3)啟動(dòng)本地DMA,把數(shù)據(jù)發(fā)送出去。

a.設(shè)置發(fā)送字節(jié)計(jì)數(shù)器TBCR1(06H)、TBCR0(05H)為發(fā)送數(shù)據(jù)包的長(zhǎng)度;

b.設(shè)置發(fā)送頁(yè)面起始地址TPSR(04H)為40H,即發(fā)送緩沖區(qū)開始地址高位字節(jié);

c.設(shè)置命令寄存器CR為26H,啟動(dòng)發(fā)送。

3.4 高層通信協(xié)議

上述發(fā)送、接收過程所完成的協(xié)議是MAC層和物理層的協(xié)議。要真正實(shí)現(xiàn)嵌入式系統(tǒng)與以太網(wǎng)上其它設(shè)備(如PC機(jī))之間的通信,還需要在嵌入式系統(tǒng)中實(shí)現(xiàn)更高層的通信協(xié)議,如TCP/IP協(xié)議,這樣PC機(jī)的程序員就可以使用TCP/IP協(xié)議透明地訪問嵌入式系統(tǒng)的數(shù)據(jù)。

因此上述以8051單片機(jī)系統(tǒng)為例的嵌入式系統(tǒng)的軟件設(shè)計(jì)中除了實(shí)現(xiàn)收發(fā)數(shù)據(jù)的功能外,還需要實(shí)現(xiàn)TCP/IP協(xié)議及更高層的應(yīng)用層協(xié)議才能真正實(shí)現(xiàn)整個(gè)系統(tǒng)的通信功能。由于TCP/IP協(xié)議的實(shí)現(xiàn)通常采用C語言,并且有現(xiàn)成的源程序,所以在用8051系列單片機(jī)編程時(shí),可采有C51語言并參考TCP/IP標(biāo)準(zhǔn)的源程序來具體實(shí)現(xiàn)。有關(guān)這方面內(nèi)容,可以查看有關(guān)TCP/IP協(xié)議方面的資料。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

隨著嵌入式系統(tǒng)不斷發(fā)展,應(yīng)用領(lǐng)域從工業(yè)自動(dòng)化、車聯(lián)網(wǎng)到先進(jìn)的物聯(lián)網(wǎng)設(shè)備日益豐富和復(fù)雜,設(shè)計(jì)人員在性能、靈活性與可靠性之間的平衡面臨越來越多的挑戰(zhàn)。具備設(shè)計(jì)可擴(kuò)展性和多樣化外設(shè)集成能力,成為應(yīng)對(duì)這些挑戰(zhàn)、讓設(shè)計(jì)具備未來適應(yīng)...

關(guān)鍵字: 嵌入式系統(tǒng) MCU 車聯(lián)網(wǎng)

在高性能嵌入式系統(tǒng)中,DMA(直接內(nèi)存訪問)是解放CPU、實(shí)現(xiàn)數(shù)據(jù)高速搬運(yùn)的“搬運(yùn)工”。然而,當(dāng)CPU緩存(L1/L2 Cache)介入后,數(shù)據(jù)的物理內(nèi)存與緩存副本之間極易出現(xiàn)不一致,這往往是導(dǎo)致系統(tǒng)隨機(jī)崩潰或數(shù)據(jù)錯(cuò)亂的...

關(guān)鍵字: DMA 緩存一致性 Cache Coherency

2026年3月10日,全球嵌入式系統(tǒng)領(lǐng)域的年度盛會(huì)——Embedded World在德國(guó)紐倫堡展覽中心盛大啟幕。作為領(lǐng)先的嵌入式處理器模組廠商,米爾電子攜全系列嵌入式核心板、開發(fā)板及創(chuàng)新解決方案重磅亮相,與來自全球40多...

關(guān)鍵字: 嵌入式系統(tǒng) 核心板 開發(fā)板

工業(yè)物聯(lián)網(wǎng)設(shè)備開發(fā)中,某智能電表項(xiàng)目曾因ADC采樣中斷響應(yīng)延遲導(dǎo)致數(shù)據(jù)丟失率高達(dá)15%。技術(shù)人員通過重構(gòu)DMA驅(qū)動(dòng)架構(gòu),將數(shù)據(jù)搬運(yùn)效率提升12倍,CPU占用率從38%降至3%,成功解決高速采樣場(chǎng)景下的實(shí)時(shí)性難題。這一案例...

關(guān)鍵字: STM32 DMA

工業(yè)機(jī)器人關(guān)節(jié)控制、CNC機(jī)床伺服驅(qū)動(dòng)等高精度電機(jī)控制場(chǎng)景中,系統(tǒng)需在100μs周期內(nèi)完成電流采樣、位置反饋、PID計(jì)算及PWM輸出等12項(xiàng)關(guān)鍵任務(wù)。傳統(tǒng)基于中斷的調(diào)度方式因CPU負(fù)載不均和任務(wù)搶占,常導(dǎo)致位置反饋延遲超...

關(guān)鍵字: 電機(jī)控制 DMA

中國(guó)北京,2026年2月——領(lǐng)先的邊緣AI與智能音頻技術(shù)提供商XMOS日前宣布,公司將參加全球嵌入式與邊緣智能領(lǐng)域的年度盛宴國(guó)際嵌入式展覽會(huì)(Embedded World 2026,EW 26),全面展示生成式系統(tǒng)級(jí)芯片...

關(guān)鍵字: 嵌入式系統(tǒng) 邊緣計(jì)算 智能音頻

外部Flash存儲(chǔ)器的訪問速度直接影響系統(tǒng)性能,傳統(tǒng)SPI接口受限于單線數(shù)據(jù)傳輸模式,在處理大容量數(shù)據(jù)時(shí)效率低下。QSPI(Quad SPI)通過四線并行傳輸技術(shù),結(jié)合DMA(直接存儲(chǔ)器訪問)機(jī)制,可突破STM32系列M...

關(guān)鍵字: QSPI DMA

通過DMA硬件加速與IDLE中斷的協(xié)同工作,該方案實(shí)現(xiàn)了變長(zhǎng)數(shù)據(jù)幀的高效可靠接收,特別適用于工業(yè)控制、智能儀表等對(duì)實(shí)時(shí)性和可靠性要求嚴(yán)苛的場(chǎng)景。其核心優(yōu)勢(shì)在于:

關(guān)鍵字: USART DMA

以STM32F103為例,當(dāng)使用USART1以115200bps速率連續(xù)接收數(shù)據(jù)時(shí),若采用傳統(tǒng)輪詢方式,每接收1字節(jié)需至少5條指令(讀DR、寫內(nèi)存、增址、判數(shù)、跳轉(zhuǎn)),在72MHz主頻下耗時(shí)約200ns。表面看CPU仍有...

關(guān)鍵字: STM32 DMA

摘要:在開發(fā)新一代嵌入式系統(tǒng)時(shí),越來越多的主控系統(tǒng)級(jí)芯片(SoC)正在從單一內(nèi)核轉(zhuǎn)向多內(nèi)核與異構(gòu)架構(gòu),這促使系統(tǒng)研發(fā)工程師更希望得到一個(gè)能“覆蓋快速變化”的統(tǒng)一開發(fā)平臺(tái)。工欲善其事必先利其器,系統(tǒng)開發(fā)的新挑戰(zhàn)正在迫使研發(fā)...

關(guān)鍵字: 嵌入式系統(tǒng) SoC 工具鏈
關(guān)閉