基于A(yíng)T91RM9200的以太網(wǎng)接口模塊設計
2.5 JTAG接口電路設計
JTAG是一種國際標準測試協(xié)議,主要用于芯片內部測試及對系統進(jìn)行仿真、調試,是開(kāi)發(fā)、調試嵌入式系統的一種簡(jiǎn)潔高效的手段。它有兩種接口標準:14針接口和20針接口。該設計中選擇20針接口標準。JTAG調試接口設計是否標準,直接影響到硬件平臺是否能夠連接ARM仿真器。所以在設計時(shí),有以下幾點(diǎn)需要注意:
(1)盡可能按照標準的20針接口設計。如果設計成14針接口,一定要嚴格按照14針接口對應于20針接口的對應關(guān)系來(lái)設計。
(2)nTRST和nRESET、引腳不用時(shí),要用10 kΩ的電阻拉高,否則JTAG上這兩個(gè)引腳的信號不確定,會(huì )造成ARM調試器不能正常連接目標系統。
(3)JTAG上輸出的信號都要用10 kΩ的電阻拉高。
2.6 UART、串行接口電路設計
AT91RM9200的UASRT作為同步/異步串行接口,在調試狀態(tài)下作為調試串口;在正常工作狀態(tài)下為一般串行口使用,可以通過(guò)RS 232實(shí)現與其他設備的通信。該設計中的UART、接口芯片是MAX3232,其工作電壓為3.3 V,16引腳SOIC封裝。其最為簡(jiǎn)單且常用的是三線(xiàn)制接法,即地線(xiàn),接收數據線(xiàn)和發(fā)送數據線(xiàn)三腳對應相連。
在完成以上幾部分電路設計后,基于AT91RM9200的嵌入式系統就具有了安全可靠的工作條件,也為下面的擴展以太網(wǎng)接口設計打下了良好的基礎。本文引用地址:http://dyxdggzs.com/article/152469.htm
3 以太網(wǎng)接口設計
在A(yíng)RM系統中,以太網(wǎng)接口是與遠程機進(jìn)行通信及調試的基礎,還可以進(jìn)行內部局域網(wǎng)和互聯(lián)網(wǎng)間的通信。而基于ARM的系統若沒(méi)有以太網(wǎng)接口,其應用價(jià)值就會(huì )大打折扣。因此,就整個(gè)嵌入式系統而言,以太網(wǎng)接口電路是必不可少的,但同時(shí)也是相對復雜的。
從硬件的角度看,以太網(wǎng)接口電路主要由MAC控制器和物理層接口(PHY)兩大部分構成。該設計中所用到的以太網(wǎng)接口芯片RTL8019AS,其內部結構包含這兩部分。RTL8019AS是一款高集成度的以太網(wǎng)控制芯片,具有8/16位總線(xiàn)模式,集成了IEEE802.3協(xié)議標準的MAC層和PHY層的性能,與NE2000相兼容,支持以太網(wǎng)全雙工通信方式;支持UTP,AUI和BNC自動(dòng)檢測,支持16位I/O基本地址選項和額外I/O地址輸入/輸出完全解碼方式;支持存儲器瞬時(shí)讀寫(xiě),收發(fā)可同時(shí)達到10 Mb/s的速率,內置16 KB的SRAM,可以方便地與微處理器進(jìn)行連接。它支持多種嵌入式處理器芯片,內置有FIFO緩存器用于發(fā)送和接收數據。
3.1 以太網(wǎng)接口工作原理
使用RTL8019AS作為以太網(wǎng)的物理層接口,它的基本工作原理是:在收到由主機發(fā)來(lái)的數據包后,偵聽(tīng)網(wǎng)絡(luò )線(xiàn)路。如果線(xiàn)路忙,它就等到線(xiàn)路空閑為止,否則,立即發(fā)送該數據幀。在發(fā)送過(guò)程中,首先為數據包添加幀頭(包括前導字段和幀開(kāi)始標志),然后生成CRC校驗碼,最后將此數據幀發(fā)送到以太網(wǎng)上。
在接收過(guò)程中,它將從以太網(wǎng)收到的數據包在經(jīng)過(guò)解碼、去幀頭和地址校驗等步驟后緩存在片內。在CRC校驗通過(guò)后,它會(huì )根據初始化配置情況,通知RTL8019AS收到了數據包。最后,用某種傳輸模式(I/O模式、Memory模式、DMA模式)傳到ARM系統的存儲區中。
3.2 硬件電路設計
用RTL8019AS芯片設計的以太網(wǎng)控制器相關(guān)電路,可以通過(guò)RJ45連上以太網(wǎng),在判斷網(wǎng)卡芯片是否工作正常時(shí),有兩個(gè)依據,一是看狀態(tài)指示LED是否有閃爍;二是用專(zhuān)用網(wǎng)絡(luò )監聽(tīng)工具軟件進(jìn)行監聽(tīng)。在本設計中用兩個(gè)LED指示燈表示接收和發(fā)送狀態(tài),當有網(wǎng)絡(luò )連接且收發(fā)數據包時(shí),LED閃爍。此外,網(wǎng)卡芯片單獨不能工作,還必須有一個(gè)網(wǎng)絡(luò )變壓器在RJ45接口和網(wǎng)卡芯片中間進(jìn)行電平轉換,該設計中所用的電平轉換器是20F001N。另外要特別注意,由于RTL8019AS的復位引腳是高電平有效,而AT91RM9200的NRST引腳是低電平有效,所以不能直接將兩個(gè)引腳進(jìn)行連接。該設計所用的解決方法是:在兩引腳間加上一個(gè)共發(fā)射極的三極管,利用它的反相作用,來(lái)達到兩個(gè)復位引腳間的電平匹配。同時(shí),為了提高數據的傳輸速率,需要將網(wǎng)卡芯片設計成16位的數據通道,這就要求將RTL8019AS的IOCSl6B引腳用電阻上拉來(lái)達到設計目的。RTL8019AS與AT91RM9200進(jìn)行連接還需要以下引腳:NOE,NEW,NCS2,D[O:15],一條中斷線(xiàn)IRQ0以及地址線(xiàn)A[O:4](設計RTL8019AS的I/O基地址為300H,所以只需要SA[O:4]接A[O:4],而A[5:19]只需要接地即可)。至此,硬件電路已經(jīng)設計完畢,整個(gè)電路的結構框圖如圖1所示。
4 軟件設計
4.1 以太網(wǎng)口初始化
初始化第一步是復位以太網(wǎng)口。以太網(wǎng)口復位分為硬件復位和軟件復位。硬件復位通過(guò)給RTL8019AS的RESET引腳發(fā)送一個(gè)復位脈沖;軟件復位通過(guò)寫(xiě)端口達到復位,也就是給18~1F之間的任意一個(gè)寄存器寫(xiě)入任意一個(gè)數,就使得以太網(wǎng)口復位。第二步是設置一些寄存器的初始值,寄存器保存本機的物理地址,只有和寄存器保存的物理地址相同的以太網(wǎng)幀才被接收(RCR寄存器中PRO=O)。
以太網(wǎng)口第一次復位必須是硬件復位,硬件復位以后要經(jīng)過(guò)大約10 ms的等待才能對以太網(wǎng)口操作,特別是發(fā)送和接收操作。
4.2 以太網(wǎng)口存儲及初始化
RTL8019AS內部RAM地址范圍從0x0000~0x7FFFF,其中0x4000~Ox7FFF用作接收和發(fā)送緩沖區。緩沖區是按頁(yè)管理的,256 b為一頁(yè),這樣接收發(fā)送緩沖頁(yè)面是0x40~0x7F。發(fā)送緩沖區的起始頁(yè)在TPSR寄存器中設置,接收緩沖區的起始頁(yè)在PSTART寄存器中設置,PSTART實(shí)際上也表明了發(fā)送緩沖區的結束頁(yè)。接收緩沖區的結束頁(yè)是PSTOP。所以發(fā)送緩沖區的頁(yè)從TPSR到PSTART-1,接收緩沖區的頁(yè)從PSTART到PSTOP-1。一般設置如下:
使發(fā)送緩沖區可以容納下兩個(gè)最大以太網(wǎng)幀(最大為1 514 B),第一個(gè)幀放在SEND_START_PAGEO起始頁(yè),第二個(gè)幀放在SEND_START_PAGE1起始頁(yè),剩下的緩沖區都作為接收緩沖區。
RTL8019AS內部RAM是雙口 RAM,因為它要支持兩個(gè)獨立的操作:一個(gè)是用戶(hù)CPU讀取RAM中的內容,對這個(gè)操作RTL8019AS提供一個(gè)讀寫(xiě)口,也就是寄存器中的Remote DMA Port;另一個(gè)是RTL8019AS內部控制電路把從網(wǎng)絡(luò )接收的數據寫(xiě)入RAM中,這時(shí)RAM稱(chēng)為L(cháng)ocal DMA。RTL8019AS通過(guò)Local DMA寫(xiě)入RAM是不需要用戶(hù)干涉的,它通過(guò)Remote DMA Port讀寫(xiě)RAM。
評論