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

當前位置:首頁 > 嵌入式 > 嵌入式硬件

摘 要: 采用DAVICOM公司的以太網控制芯片和TI公司的TMS320C6713設計了網絡通信電路。該設計適用于各種嵌入式設備以及各種信號處理設備中。為各種設備之間的通信提供解決方案。給出了TMS320C6713和DM9000A的接口電路和軟件編程實現(xiàn)。
關鍵詞: DSP; 以太網; DM9000A; TCP/IP協(xié)議

隨著嵌入式技術和網絡技術的發(fā)展及以太網的廣泛應用,各種應用設備的網絡化成為未來設備發(fā)展的一個重要方向。各種嵌入式設備已經成功滲透到生產生活的各個領域,并逐漸朝著網絡化、智能化的方向發(fā)展[1]。以太網因其在實時操作、可靠傳輸、標準統(tǒng)一等方面的卓越性能及其便于安裝、維護簡單、不受通信距離限制等優(yōu)點,已發(fā)展成為一種成熟的技術。人們希望通過網絡連接各種現(xiàn)場,協(xié)調各種設備間的工作,實現(xiàn)設備的網絡化控制與管理。AVICOM公司的DM9000A是實現(xiàn)網絡通信的芯片,它占用很少的硬件資源,可以在不改變設備其他性能的基礎上給設備加入網絡功能。開發(fā)一個嵌入式通信控制器不僅實現(xiàn)了設備上網的低成本解決方案,同時也提升了設備信息化水平。隨著數字信息技術、網絡技術和嵌入式系統(tǒng)的高速發(fā)展,如視頻監(jiān)控、遠程控制、信息家電、網絡攝像頭都離不開嵌入式設備與網絡的結合,嵌入式系統(tǒng)的以太網接口設計已成為目前的一個研究熱點。因此嵌入式以太網接口的設計對于嵌入式網絡系統(tǒng)的建立是十分必要的。目前,Linux 操作系統(tǒng)己經越來越廣泛地被應用于嵌入式設備[2],編寫Linux下的設備驅動程序十分有意義。
1 DM9000A芯片介紹
DM9000A是DAVICOM公司推出的一款高速以太網接口芯片,其基本特征是:集成10M/100M物理層接口;內部帶有16 KB SRAM用作接收發(fā)送的FIFO緩存;支持8/16 bit兩種主機工作模式;通過HP認證的AUTO-Mdix(支持直接互連自動翻轉)功能;支持TCP/IP加速(IPv4 check sum offload)減輕CPU負擔,提高整機效能;10 ns I/O讀寫時間。該電路還集成了EEPROM接口,自舉時通過EEPROM接口輸入到芯片中,從而實現(xiàn)自動初始化。在現(xiàn)有以太網控制器芯片中大多數速度是10 M的,其傳輸速率慢, DM9000A是成本低速度快的以太網控制器芯片,速度10M/100M自適應。它被設計為低功耗、高處理性能, 而其操作又非常簡單, 具有通用的處理器接口,可以與多種處理器直接連接,容易完成不同系統(tǒng)的軟件驅動開發(fā)。數據總線寬度可設置為8 bit和16 bit,IO口支持3.3 V~5 V,因此幾乎可以和所有處理器連接。DM9000A以太網控制器遵循IEEE頒布的802.3以太網傳輸協(xié)議[3]。芯片內部集成4 KB雙字節(jié)靜態(tài)存取存儲器, 自動收發(fā)轉換功能使開發(fā)變得更加簡單, 容易完成不同系統(tǒng)的軟件驅動開發(fā)。
2 DM9000A芯片的硬件接口設計
DM9000A可以很方便地與目前主流嵌入式CPU以8 bit或16 bit的總線方式連接,本文系統(tǒng)的CPU為TI公司的DSP:TMS320C6713(C6713),它是業(yè)界流行的一款高性能32 bit浮點DSP,在255 MHz時鐘主頻下,其最高執(zhí)行速度可達1 800 MIPS。C6713擁有豐富的片內資源,常用于數字處理領域,二者的接口設計如圖1。

現(xiàn)在的設備都包含數字處理器,DM9000A可以很容易地應用到各種設備里。由圖1可以看到,TMS320C6713與DM9000A硬件連接簡單。系統(tǒng)上電時,DSP通過總線配置DM9000A內部網絡控制寄存器(NCR)、中斷寄存器(ISR)等,完成DM9000A的初始化。隨后,DM9000A進入數據收發(fā)等待狀態(tài)。該電路還集成了EEPROM接口,自舉時通過EEPROM接口輸入配置數據到芯片中,從而實現(xiàn)自動初始化。數據總線SD0-SD15可以直接掛在處理器的數據總線上,無需電平轉換。如果EECS接一個10 kΩ的上拉電阻,芯片在上電時將被配置成8 bit數據總線模式,此時SD8-SD15可以用作GPIO。再加一個硬件協(xié)議棧,可以將其用在沒有處理器的設備中。
3 DM9000A芯片的操作
對處理器驅動網卡芯片來說,比較關心的有以下幾個引腳:IOR、IOW、CMD(A2)、INT、RST以及數據引腳SD0~SD15。IOR和IOW是DM9000的讀寫選擇引腳,低電平有效,即在信號的上升沿進行讀(IOR)寫(IOW)操作。CMD為命令/數據選擇引腳,低電平時讀寫命令操作,高電平時讀寫數據操作,將它接到處理器的地址線A2上。如DM9000A工作的基地址為0x80000000,則DM9000A有兩個的地址:命令口地址(0x80000000)和數據口地址(0x80000004)。DM9000A有多個寄存器,通過先向命令口寫寄存器地址,再向數據口寫寄存器數據來配置芯片。數據總線SD0-SD15則根據數據總線的位數接到處理器數據總線上。收發(fā)數據也是通過讀寫相應的寄存器實現(xiàn)。
圖2和圖3分別顯示了DM9000A的讀寫時序,由圖可知,DM9000A的讀寫操作與一般的異步存儲器相同。根據芯片資料,編寫讀寫寄存器的子函數。

寄存器的讀操作:
#define DM_INDEX *(volatile unsigned int *)0x8000000
#define DM_DATA *(volatile unsigned int *)0x8000004
int dm9000_reg_read(char reg)
{ DM_INDEX = reg;
  return DM_ DATA; }
寄存器的寫操作:
void dm9000_reg_write(char reg, char data)
{ DM_ INDEX = reg;
DM_ DATA = data; }
4 DM9000A芯片的初始化
對DM9000A芯片的初始化,就是向相應的寄存器寫入期望的值,為芯片的穩(wěn)定工作做好準備。表1列出各寄存器的名稱、地址以及賦參考值,寄存器的具體功能可以參考DM9000A的用戶手冊。

初始化中還要對PAR(10H--15H)寄存器初始化,PAR中保存的是芯片物理地址即通常的MAC地址,芯片根據網絡數據與PAR中的數據比較來確定保存或丟棄數據。初始化后,可以通過讀NCR寄存器來判斷芯片是否已經連上網絡。
5 DM9000A芯片數據的發(fā)送和接收
在傳送數據封包之前,需將其封包數據存放在DM9000A的內存中。DM9000A的內部RAM地址0000h~0BFFh用來存放發(fā)送數據包。用戶無需關心數據存放的地址,只要向MWCMD寄存器寫入數據包即可,內部數據指針會自動更新,將MWCMD寄存器的數據依次存到內部RAM。另外還需將要傳送封包的大小存放在TXPLH和TXPLL寄存器中。之后再將TCR的bit0設為1,此時芯片開始進行封包的傳送。而在傳送完成后,會將傳送是否成功的信息放在TSRI、TSRll中。
以下為數據發(fā)送的函數:datas為要發(fā)送的數據在處理器緩沖區(qū)的地址,len(兩個字節(jié))為要發(fā)送的數據長度(以字節(jié)為單位)。
void sendpacket(char *datas, unsigned int len)
  {unsigned int i;
dm9000_reg_write(IMR, 0x80);//先禁止網卡中斷,防止在發(fā)送數據時被中斷干擾。
DM_ INDEX = MWCMD; //寫命令寄存器
for(i=0; i<len; i+=2) //16 bit mode
DM_DATA = datas[i] | (datas[i+1]<<8);
dm9000_reg_write(TXPLH, (len>>8) & 0x0ff);
dm9000_reg_write(TXPLL, len & 0x0ff);
dm9000_reg_write(TCR, 0x01); //請求發(fā)送數據
dm9000_reg_write(IMR, 0x81);
//DM9000網卡的接收中斷使能
}
數據的發(fā)送比較簡單,接收相對復雜一點。DM9000接收到數據包時,會存放于DM9000接收內存的0C00h~3FFFh中。若是讀取位置超過3FFFh時,DM9000會自動將位置移到OC00h的位置。在每一個數據包前,會增加4 B存放數據包相關資料。接收數據包時首先要讀取這4個字節(jié)來確定數據包的狀態(tài),第一個字節(jié)“01H”表示接下來的是有效數據包,若為“00H”則表示沒有數據包,若為其他值則表示網卡沒有正確初始化,需要重新初始化。在讀取其他字節(jié)之前,必需要確定第1個字節(jié)是否為“01h”。第2個字節(jié)則為這個數據包的相關信息,其格式與RSR寄存器的格式一樣。第3和4個字節(jié)是存放這個封包的長度大?。ú话ㄇ八膫€字節(jié))。
如果接收到的數據包長度小于60 B,則DM9000會自動為不足的字節(jié)補上0,使其達到60 B。同時,在接收到的數據包后DM9000還會自動添加4個CRC校驗字節(jié)??梢圆挥杼幚?。于是,接收到的數據包的最小長度也會是64 B。
接收數據包的過程:(1)讀MRCMDX寄存器,判斷是否有數據包。(2)如有數據包,讀MRCMD寄存器,根據數據包的長度信息將整個數據包讀取出來。其中第一步需要做兩遍,因為第一次讀到的值總為0。
以下為數據包接收的函數:datas為接收到是數據存儲位置,接收成功返回1,不成功返回0。
unsigned int receivepacket(unsigned char *datas)
{
unsigned int i, tem;
unsigned int status, len;
unsigned char ready;
ready = 0; //希望讀取到“01H”
status = 0; //數據包狀態(tài)
len = 0; //數據包長度
/*以上為有效數據包前的4個狀態(tài)字節(jié)*/
ready = dm9000_reg_read(MRCMDX);
//第一次讀取,一般讀取到的是00H
ready = dm9000_reg_read(MRCMDX);
//第二次讀取,總能讀對if(ready!= 0x01)
{ if(ready!= 0x00)
//若第二次讀取到的不是01H或00H,則
表示沒有初始化成功
{ dm9000_reg_write(IMR, 0x80);
//屏幕網卡中斷
DM9000_init();//重新初始化
dm9000_reg_write(IMR, 0x81);
//打開網卡中斷
}
retrun 0;
}
}
/*以上表示若接收到的第一個字節(jié)不是“01H”,則表示沒有數據包,返回0*/
status = dm9000_reg_read(MRCMD);
len = DM_DATA;
if(!(status & 0xbf00) && (len < 1522))
{ for(i=0; i<len; i+=2)// 16 bit mode
{ tem = DM_ DATA;
datas[i] = tem & 0x0ff;
datas[i+1] = (tem >> 8) & 0x0ff;
}
}
else
{
return 0;
}
6 網絡數據傳輸協(xié)議
以上完成了以太網數據包的收發(fā),應用網絡傳輸還需要完整的網絡傳輸協(xié)議,TCP/IP協(xié)議為互聯(lián)網通用協(xié)議。TCP/IP協(xié)議族是一整套把各種系統(tǒng)連接在一起并保證數據準確快速傳輸的規(guī)定和格式[4]。通常把TCP/IP協(xié)議族抽象成為一種具有四層結構的模型:鏈路層、網絡層、運輸層、應用層。每層各負責一個或一系列獨立的功能。根據各種協(xié)議的格式編寫相應的數據處理函數。在有操作系統(tǒng)的應用中,要編寫網絡設備驅動程序。設備驅動程序需要完成網絡設備的注冊、初始化與注銷以及進行發(fā)送和接收數據處理,并能針對傳送超時、中斷等情況進行及時處理[5]。
DM9000A的操作簡單,模塊獨立,不會影響原設備的性能指標,為設備間的通信提供保障。在沒有處理器的裝備中,93C46可以正確初始化芯片,硬件協(xié)議棧能正確處理收發(fā)數據。傳輸協(xié)議有成熟的TCP/IP協(xié)議,在簡單的通信和控制系統(tǒng)中,可以應用簡單的數據傳輸協(xié)議,縮短開發(fā)周期,提高設備的效率。
參考文獻
[1] 雒珊,尹崗.基于ARM 的以太網通信控制器的設計[J].電子測量技術,2009, 23(10):133-135.
[2] 趙軍.嵌入式平臺上Linux網絡設備驅動程序的開發(fā)[J].電腦知識與技術,2009,5(33):9272-9273.
[3] 陳 峰,彭 龑,易 彬,等.基于嵌入式技術的以太網接口設計[J].通信技術,2010,43(5):127-129.
[4] 劉春燕,顏興建.嵌入式TCP/IP協(xié)議的設計與實現(xiàn)[J].電腦知識與技術,2010,6(8):1815-1816.
[5] 周敬瓊,周鳳星.基于ARM 的Linux 網絡設備驅動程序開發(fā)[J]. 計算機工程與設計,2009,30(22):5124-5127.

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在當今數字化時代,汽車不再僅僅是一種交通工具,更是一個移動的智能空間。隨著人們對汽車電子設備依賴程度的不斷提高,車內 USB 接口的重要性也日益凸顯。從最初單純?yōu)槭謾C充電,到如今支持數據傳輸、連接各種智能設備,USB 接...

關鍵字: 接口 數據傳輸 汽車供電

根據Semico Research的預測,到2025年RISC-V芯片出貨量將達到624億顆,覆蓋計算、消費電子和工業(yè)等領域。而在這其中,RISC-V MCU是整個RISC-V生態(tài)的基本盤,以高質量、應用驅動的解決方案為...

關鍵字: 青稞 RISC-V 沁恒 接口 MCU

NodeMCU是一個開源物聯(lián)網平臺,包含運行在expressif Systems ESP8266 Wi-Fi SoC上的固件,硬件基于ESP-12模塊。NodeMCU的特點之一是可以使用Arduino IDE進行簡單的編...

關鍵字: GPS NodeMCU ESP8266 接口 物聯(lián)網

在浩瀚的電子科技海洋中,GPIO(General Purpose Input/Output)作為一個基礎而強大的概念,始終扮演著連接微控制器與物理世界的橋梁角色。它不僅僅是一組簡單的引腳,更是賦予電子設備感知與響應能力的...

關鍵字: GPIO 接口 微控制器

接口的類型對圖像傳輸的質量起到了決定性的影響。隨著液晶顯示屏的風靡,許多原來接駁在電視平臺的娛樂設備轉移到了液晶顯示屏上。

關鍵字: LCD 接口 RGB

隨著科技的飛速發(fā)展,電子產品在我們日常生活中扮演著越來越重要的角色。而在這些電子產品中,接口作為連接設備與外部設備的橋梁,其重要性不言而喻。其中,Type-C接口作為一種新型的接口標準,因其獨特的優(yōu)勢,逐漸成為了眾多電子...

關鍵字: 電子產品 Type-C 接口

隨著電動汽車的普及,充電樁作為電動汽車的重要基礎設施,越來越受到人們的關注。然而,對于許多電動汽車用戶來說,直流充電樁和交流充電樁的接口和區(qū)別仍然是一個令人困惑的問題。本文將從接口和區(qū)別兩個方面,詳細探討直流充電樁和交流...

關鍵字: 電動汽車 接口 充電樁

武漢2023年9月19日 /美通社/ -- 目前,在國家政策和市場需求雙重驅動下,國內數據庫行業(yè)呈現(xiàn)出百花齊放的態(tài)勢。充分競爭的市場環(huán)境下,達夢數據連續(xù)數年保持中國數據庫管理系統(tǒng)市場占有率前列地位,成為當之無愧的國產數據...

關鍵字: DM DSC 國家電網 接口

深圳2023年9月15日 /美通社/ -- 9月14-15日,2023全球AI芯片峰會(GACS 2023)在深圳正式舉行。峰會以【AI 大時代 逐鹿芯世界】為主題,共探AI芯片的產學研用,邀請了清華大學教授、中國半導體...

關鍵字: 接口 芯科 內存 AC

Type-C接口已經成為當今市場上備受青睞的接口之一。它以其小巧輕便、高速傳輸、支持多種協(xié)議等特點,吸引了越來越多的關注。

關鍵字: Type-C 接口 USB
關閉