當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]1 引言隨著Internet 的出現(xiàn)和以太網(wǎng)的迅速發(fā)展, 基于以太網(wǎng)的設(shè)備控制越來越多。目前市場上大部分以太網(wǎng)控制器采用的封裝均超過80 引腳, 如RTL8019AS、DM9008、CS8900A

1 引言

隨著Internet 的出現(xiàn)和以太網(wǎng)的迅速發(fā)展, 基于以太網(wǎng)的設(shè)備控制越來越多。目前市場上大部分以太網(wǎng)控制器采用的封裝均超過80 引腳, 如RTL8019AS、DM9008、CS8900A 等。這些器件不僅結(jié)構(gòu)復(fù)雜, 面積龐大, 且系統(tǒng)開銷較大。近來, Microchip推出全球首枚28 引腳獨立以太網(wǎng)控制器ENC28J60, 可為嵌入式系統(tǒng)提供低引腳數(shù)、低成本、精簡的遠程通訊解決方案。

2 ENC28J60 網(wǎng)絡(luò)接口體系結(jié)構(gòu)

ENC28J60 是帶有行業(yè)標準串行外設(shè)接口(Serial PeripheralInterface, SPI)的獨立以太網(wǎng)控制器。它符合IEEE 802.3 的全部規(guī)范, 采用了一系列包過濾機制以對傳入數(shù)據(jù)包進行限制。它還提供了一個內(nèi)部DMA 模塊, 以實現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的IP 校驗和計算。與主控制器的通信通過兩個中斷引腳(INT和WOL)和SPI 腳(SO、SI、SCK、CS)實現(xiàn), 數(shù)據(jù)傳輸速率高達10Mb/s.兩個專用的引腳(LEDA、LEDB)用于連接LED, 進行網(wǎng)絡(luò)活動狀態(tài)指示。圖1 所示為ENC28J60 的典型應(yīng)用電路。

 


ENC28J60 由7 個主要功能模塊組成:SPI 接口, 充當主控制器和ENC28J60 之間通信通道; 控制寄存器, 用于控制和監(jiān)視ENC28J60; 雙端口RAM緩沖器, 用于接收和發(fā)送數(shù)據(jù)包; 判優(yōu)器, 當DMA、發(fā)送和接收模塊發(fā)出請求時對RAM緩沖器的訪問進行控制; 總線接口, 對通過SPI 接收的數(shù)據(jù)和命令進行解析;MAC 模塊:實現(xiàn)符合IEEE 802.3 標準的MAC 邏輯; PHY 模塊, 對雙絞線上的模擬數(shù)據(jù)進行編碼和譯碼。ENC28J60 還包括其他支持模塊, 諸如振蕩器、片內(nèi)穩(wěn)壓器、電平變換器(提供可以接受5V 電壓的I/O 引腳)和系統(tǒng)控制邏輯。

根據(jù)以上說明, ENC28J60 應(yīng)用于嵌入式網(wǎng)絡(luò)接口是非常合適的, 有廣闊的應(yīng)用發(fā)展前景。

3 ENC28J60 在嵌入式網(wǎng)絡(luò)接口的應(yīng)用

3.1 硬件電路設(shè)計

利用ENC28J60 可以構(gòu)成不同功能的網(wǎng)絡(luò)終端節(jié)點, 如網(wǎng)絡(luò)服務(wù)器、帶Internet 功能的設(shè)備、遠程監(jiān)控(數(shù)據(jù)采集, 診斷)設(shè)備等。圖2 所示為基于ENC28J60 的嵌入式網(wǎng)絡(luò)接口的硬件電路原理圖。電路中有:2 個LED 狀態(tài)指示燈主要用來顯示網(wǎng)絡(luò)連接狀態(tài), 包括PHY 是否沖突、連接是否建立、是否接收數(shù)據(jù)、連接速度、雙工模式等; 必需的偏置電阻R3(2kΩ, 精度為1%);高速局域網(wǎng)電磁隔離模塊(即RJ45 以太網(wǎng)接口), 應(yīng)用中,ENC28J60 的物理端口與隔離變壓器HR901170A 連接時必須符合IEEE802.3 對物理層規(guī)范的要求, 如RJ45 的插孔與隔離變壓器的間隔應(yīng)盡量小, 輸出和輸入差分信號對的走線要有很好的隔離。

 


電路中的主控制器采用Atmel 公司的ATmega16 單片機,它具有先進的RISC(精簡指令集計算機)結(jié)構(gòu)、16 kB 可編程Flash 存儲器、512 B 的EEPROM和1 kB 片內(nèi)SRAM, 具有豐富的外設(shè)接口, 其SPI 接口允許ATmega16 與外設(shè)進行高速的同步數(shù)據(jù)傳輸。本設(shè)計中ATmega16 SPI 配置為主機模式,ENC28J60 為從設(shè)備。ATmega16 的SPI 工作模式由CPOL、CPHA 設(shè)置, 根據(jù)ENC28J60 的SPI 讀寫時序, ATmega16 的SPI工作模式應(yīng)設(shè)置為模式0.ATmega16 通過將ENC28J60 的CS引腳置低實現(xiàn)與其的同步。SPI 時鐘由寫入到SPI 發(fā)送緩沖寄存器的數(shù)據(jù)啟動, SPI MOSI(PB5)引腳上的數(shù)據(jù)發(fā)送秩序由寄存器SPCR 的DORD 位控制, 置位時數(shù)據(jù)的LSB(最低位)首先發(fā)送, 否則數(shù)據(jù)的MSB(最高位)首先發(fā)送。我們選擇先發(fā)送MSB,同時接收到的數(shù)據(jù)傳送到接收緩沖寄存器, CPU 進行右對齊從接收緩沖器中讀取接收到的數(shù)據(jù)。應(yīng)該注意, 當需要從ENC28J60 中讀取多個數(shù)據(jù)時, 即使ENC28J60 并不需要ATmega16 串行輸出的數(shù)據(jù), 每讀取一個數(shù)據(jù)前都要向SPI 發(fā)送緩沖器寫一個數(shù)據(jù)以啟動SPI 接口時鐘。由于SPI 系統(tǒng)的發(fā)送方向只有1 個緩沖器, 而在接收方向有2 個緩沖器, 所以在發(fā)送時一定要等到移位過程全部結(jié)束后, 才能對SPI 數(shù)據(jù)寄存器執(zhí)行寫操作; 而在接收數(shù)據(jù)時, 需要在下一個字節(jié)移位過程結(jié)束之前通過訪問SPI 數(shù)據(jù)寄存器讀取當前接收到的數(shù)據(jù), 否則第1 個數(shù)據(jù)丟失。

3.2 ENC28J60 軟件初始化

在使用ENC28J60 發(fā)送和接收數(shù)據(jù)包前, 必須對器件進行初始化設(shè)置。根據(jù)不同的應(yīng)用, 一些配置選項可能需要更改。初始化設(shè)置工作包括接收和發(fā)送緩沖器、接收過濾器、晶振啟動時間、MAC 寄存器、PHY 寄存器。初始化芯片之前先關(guān)閉單片機的中斷輸入, 對RESET 引腳給定一個持續(xù)的低電平復(fù)位信號, 然后對相應(yīng)的寄存器進行設(shè)置。設(shè)置完成所有需要的寄存器后, 判斷以太網(wǎng)狀態(tài)中的時鐘啟動標志位是否置位, 然后開中斷。

系統(tǒng)初始化后進入主程序循環(huán), 包括單片機的控制作用和網(wǎng)絡(luò)數(shù)據(jù)傳輸。對于以太網(wǎng)傳輸部分來說。主要有兩個作用:一是對要發(fā)送的數(shù)據(jù)按照以太網(wǎng)數(shù)據(jù)幀格式進行封裝并發(fā)送; 二是對接收的以太網(wǎng)數(shù)據(jù)幀進行解包, 供應(yīng)用程序使用。

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

在進行數(shù)據(jù)包發(fā)送或接收時, 要先對寫緩沖存儲器(WriteBuffer Memory, WBM)命令掌握。WBM允許主控制器將字節(jié)寫入8KB 發(fā)送和接收緩沖存儲器。如果ECON2 寄存器中的AUTOINC 位置1, 那么在寫完每個字節(jié)的最后一位之后,EWRPT 指針將會自動地遞增指向下一個地址(當前地址加1)。

如果寫入地址1FFF 且AUTOINC 置1, 則寫指針加1 指向0000h.將CS 引腳拉為低電平啟動WBM命令。然后將WBM操作碼及隨后的5 位常量1Ah 送入ENC28J60.在發(fā)送WBM命令和常量之后, 由EWRPT 指向的存儲器中的數(shù)據(jù)將移入ENC28J60, 首先移入最高位。在接收到8 個數(shù)據(jù)位后, 如果AUTOINC 置1, 寫指針將自動遞增。主控制器可以繼續(xù)在SCK引腳提供時種信號、在SI 引腳發(fā)送數(shù)據(jù)同時保持/CS 為低電平, 從而可以連續(xù)寫入存儲器。當AUTOINC 被使能時, 以該方式就可以連續(xù)地向緩沖存儲器寫入字節(jié)而無需多余的SPI命令。拉高CS 引腳電平可結(jié)束WBM命令。在WBM操作期間,SO 引腳一直為高阻態(tài), WBM操作時序, 請參見圖3.[!--empirenews.page--]

 


ENC28J60 內(nèi)的MAC 在發(fā)送時會自動生成前導(dǎo)符和幀起始定界符。此外, MAC 可根據(jù)配置生成填充(如果需要)和CRC字段。主控制器必須生成所有其他幀字段, 并將它們寫入緩沖存儲器, 以待發(fā)送。此外, ENC28J60 還要求在待發(fā)送的數(shù)據(jù)包前添加一個包控制字節(jié)。主控制器應(yīng):1.正確編程ETXST 指針,使之指向存儲器中未用的單元。它將指向包控制字節(jié), 在本設(shè)計方案中, 指針應(yīng)編程為0120h; 2.使用WBM SPI 命令寫入包控制字節(jié)、目標地址、源MAC 地址、類型/ 長度和數(shù)據(jù)有效負載; 3.正確編程ETXND 指針。它應(yīng)指向數(shù)據(jù)有效負載的最后一個字節(jié), 在本設(shè)計方案中, 指針應(yīng)編程為0156h; 4.將EIR.TXIF位清零、將EIE.TXIE 位和EIE.INTIE 位置1 允許在發(fā)送完成后產(chǎn)生中斷(如果需要); 5.將ECON1.TXRTS 位置1 開始發(fā)送。如果在TXRTS 位置1 時正在進行DMA 操作, ENC28J60 會等待DMA 操作完成再發(fā)送。這種等待是必需的, 因為DMA 和發(fā)送引擎共享同一個存儲器訪問端口。同樣如果在TXRTS 已置1后, ECON1 中DMAST 位才置1, DMA 在TXRTS 位清零前不會采取任何動作。如果正在進行發(fā)送, 不應(yīng)通過SPI 讀取或?qū)懭肴魏未l(fā)送的字節(jié)。主控制器將TXRTS 位清零可取消發(fā)送。如果數(shù)據(jù)包發(fā)送完成或因錯誤取消而中止發(fā)送, ECON1.TXRTS位會被清零, 一個7 字節(jié)的發(fā)送狀態(tài)向量將被寫入由ETXND +1 指向的單元, EIR.TXIF 會被置1 并產(chǎn)生中斷(如果允許)。要驗證數(shù)據(jù)包是否成功發(fā)送, 應(yīng)讀取ESTAT.TXABRT 位。如果該位置1, 主控制器在查詢發(fā)送狀態(tài)向量的各個字段外, 還應(yīng)查詢ESTAT.LATECOL 位, 以確定失敗的原因。下面給出寫數(shù)據(jù)包的源代碼:

 


3.3 ENC28J60 接收數(shù)據(jù)包

假設(shè)接收緩沖器已完成初始化, MAC 已正確配置而且接收過濾器已配置為接收以太網(wǎng)數(shù)據(jù)包, 主控制器應(yīng)該:1.如果需要在接收到數(shù)據(jù)包時產(chǎn)生一個中斷, 就要將EIE.PKTIE 位和EIE.INTIE位置1; 2. 如果需要在由于緩沖空間不足導(dǎo)致數(shù)據(jù)包丟失時產(chǎn)生一個中斷, 就要將EIR.RXERIF 位清零, 并將EIE.RXERIE位和EIE.INTIE 位置1; 3. 通過將ECON1.RXEN 位置1使能接收。在將RXEN 置1 后, 將不能修改雙工模式和接收緩沖器起始和結(jié)束指針。此外, 要阻止不期望接收的數(shù)據(jù)包, 在更改接收過濾器配置寄存器(ERXFCON) 和MAC 地址前建議將RXEN 清零。在使能接收后, 沒有過濾掉的數(shù)據(jù)包將寫入循環(huán)接收緩沖器。任何不符合過濾條件的數(shù)據(jù)包將被丟棄, 但主控制器無法識別一個數(shù)據(jù)包已被丟棄。當接收到一個數(shù)據(jù)包并將其完整寫入緩沖器時, EPKTCNT 寄存器將遞增, EIR.PKTIF 位將置1, 并產(chǎn)生一個中斷(如果允許), 同時硬件寫指針ERXWRPT 自動遞增。

4 結(jié)束語

隨著數(shù)字化、智能化儀器的飛速發(fā)展, 采用以太網(wǎng)進行通信的應(yīng)用將會越來越廣泛。ENC28J60 芯片是網(wǎng)絡(luò)技術(shù)與單片機技術(shù)的完美結(jié)合, 用它可以方便地實現(xiàn)嵌入式系統(tǒng)的以太網(wǎng)連接, 可廣泛用于智能交通、汽車電子、工業(yè)控制、信息家電、醫(yī)學(xué)儀器等各種嵌入式系統(tǒng)應(yīng)用場合。

本文作者的創(chuàng)新點: 通過ENC28J60 芯片所設(shè)計的嵌入式網(wǎng)絡(luò)接口可以在多種環(huán)境中應(yīng)用, 能按需要進行配置來完成系統(tǒng)功能,并且在成本、體積、功耗、靈活性等方面具有明顯的優(yōu)勢,能為智能化儀器與設(shè)備、信息家電等開拓新的應(yīng)用前景。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉