




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Enc28j60以太網(wǎng)芯片驅(qū)動程序簡介本介紹可分為三塊內(nèi)容:1.以太網(wǎng)數(shù)據(jù)幀結(jié)構(gòu)符合IEEE802.3標(biāo)準(zhǔn)的以太網(wǎng)幀的長度是介于64-1516字節(jié)之間。主要由目標(biāo)MAC地址、源MAC地址、類型/長度字段、數(shù)據(jù)有效負(fù)載、可選填充字段和循環(huán)冗余校驗組成,另外在通過以太網(wǎng)介質(zhì)發(fā)送數(shù)據(jù)包時,一個7字節(jié)的前導(dǎo)字段和一字節(jié)的幀起始定界符被附加到以其次,在數(shù)據(jù)字段處:以太網(wǎng)數(shù)據(jù)字段的長度可以在0-1500字節(jié)之間變換,超過這一范圍的數(shù)據(jù)包是違反以太網(wǎng)標(biāo)準(zhǔn)的,這些包將會被大多數(shù)以太網(wǎng)節(jié)點丟棄。若設(shè)置ENC28J60的巨大幀使能位為1,可以發(fā)送和接收超大規(guī)格數(shù)據(jù)包。在數(shù)據(jù)域中的填充字段是在數(shù)據(jù)字段小于46字節(jié)時
2、起填充作用。ENC28J60在發(fā)送數(shù)據(jù)包時,會自動填充0。ENC28J60在接收時自動拒絕小于18字節(jié)的數(shù)據(jù)包。數(shù)據(jù)填充亦可由主控芯片來配置。最后,在CRC處:ENC28J60在接收數(shù)據(jù)包時將檢查每個傳入數(shù)據(jù)包的CRC,通過檢測ERXFCON.CRCEN位來判斷CRC并發(fā)操作碼輸入數(shù)據(jù)包的CRC是否正確。ENC28J60CRC并發(fā)操作碼送它。發(fā)送數(shù)據(jù)包的CRC亦可由主控芯片來提供。2驅(qū)動程序介紹ENC28J60的寄存器讀寫規(guī)則由于ENC28J60芯片采用的是SPI串行接口模式,其對內(nèi)部寄存器讀寫的規(guī)則是先發(fā)前3bit+寄存器地址后5bit,再發(fā)送欲操作數(shù)據(jù)。通過不同操作碼來判別操作時讀寄存器(
3、緩存區(qū))還是寫寄存器(緩沖區(qū))或是其它。ENC28J60芯片初始化程序ENC28J60發(fā)送和接收數(shù)據(jù)包前必須對內(nèi)進行初始化設(shè)置,通常在復(fù)位后完成,不需再更改。voidenc28j60_init(void)/*Bankl區(qū)相關(guān)寄存器配置SPI操作塊數(shù)據(jù)塊/初始化程序一開始先進行軟件復(fù)位,111操作碼+11111參數(shù),N/A/ENC28J60_SOFT_RESET=0 xFFenc28j60WriteOp(ENC28J60_SOFT_RESET,0,ENC28J60_SOFT_RESET);delay_ms(5);/初始化接收緩沖區(qū),設(shè)置接收起始地址NextPacketPtr=RXSTART_IN
4、IT;/讀下一數(shù)據(jù)包指針enc28j60Write(ERXSTL,RXSTART_INIT&0 xFF);enc28j60Write(ERXSTH,RXSTART_INIT8);/設(shè)置接收讀指針指向地址enc28j60Write(ERXRDPTL,RXSTART_INIT&0 xFF);enc28j60Write(ERXRDPTH,RXSTART_INIT8);/設(shè)置接收緩沖區(qū)的末尾地址/ERXND寄存器默認(rèn)指向整個緩沖區(qū)的最后一個單元enc28j60Write(ERXNDL,RXSTOP_INIT&0 xFF);enc28j60Write(ERXNDH,RXSTOP_INIT8);/設(shè)置發(fā)送
5、緩沖區(qū)的起始地址/ETXST寄存器默認(rèn)地址是整個緩沖區(qū)的第一個單元enc28j60Write(ETXSTL,TXSTART_INIT&0 xFF);enc28j60Write(ETXSTH,TXSTART_INIT8);/*Bank2區(qū)相關(guān)寄存器配置/MAC初始化配置/MAC接收使能,下行程序段表示使能MAC接收,使能IEEE流量控制enc28j60Write(MACON1,MACON1_MARXEN|MACON1_TXPAUS|MACON1_RXPAUS);/MACON2清零,讓MAC退出復(fù)位狀態(tài)enc28j60Write(MACON2,0 x00);/下行程序段表示使能自動填充和自動CRC
6、添加enc28j60WriteOp(ENC28J60_BIT_FIELD_SET,MACON3,MACON3_PADCFG0|MACON3_TXCRCEN|MACON3_FRMLNEN);/enc28j60Write(MACON3,MACON3_PADCFG0|MACON3_TXCRCEN|MACON3_FRMLNEN);/配置非背對背包之間的間隔enc28j60Write(MAIPGL,0 x12);enc28j60Write(MAIPGH,0 x0C);/配置背對背包之間的間隔enc28j60Write(MABBIPG,0 x12);/設(shè)置允許接收或發(fā)送的最大幀長度編程enc28j60Wr
7、ite(MAMXFLL,MAX_FRAMELEN&0 xFF);enc28j60Write(MAMXFLH,MAX_FRAMELEN8);/*Bank3區(qū)相關(guān)寄存器配置/將MAC地址寫入MAADR0-MAADR5寄存器中/NOTE:MACaddressinENC28J60isbyte-backwardenc28j60Write(MAADR5,UIP_ETHADDR0);enc28j60Write(MAADR4,UIP_ETHADDR1);enc28j60Write(MAADR3,UIP_ETHADDR2);enc28j60Write(MAADR2,UIP_ETHADDR3);enc28j60W
8、rite(MAADR1,UIP_ETHADDR4);enc28j60Write(MAADR0,UIP_ETHADDR5);/阻止發(fā)送回路的自動環(huán)回enc28j60PhyWrite(PHCON2,PHCON2_HDLDIS);/*Bank0區(qū)相關(guān)寄存器配置enc28j60SetBank(ECONl);/設(shè)置寄存器區(qū)/中斷使能enc28j60WriteOp(ENC28J60_BIT_FIELD_SET,EIE,EIE_INTIE|EIE_PKTIE);/包接收使能enc28j60WriteOp(ENC28J60_BIT_FIELD_SET,ECON1,ECON1_RXEN);說明:enc28j60
9、Write函數(shù)內(nèi)部包含了SetBank設(shè)置寄存器區(qū)子程序,而enc28j60WriteOp直接根據(jù)spi操作碼前3bit+寄存器地址后5bit進行操作的。(3)ENC28J60發(fā)送數(shù)據(jù)包程序ENC28J60內(nèi)的MAC在發(fā)送數(shù)據(jù)包時會自動生成前導(dǎo)符合幀起始定界符。此外,也會根據(jù)用戶配置以及數(shù)據(jù)具體情況自動生成數(shù)據(jù)填充和CRC字段。主控器必須把所有其它要發(fā)送的幀數(shù)據(jù)寫入ENC28J60緩沖存儲器中。另外在待發(fā)送數(shù)據(jù)包前要添加一個包控制字節(jié)。包控制字節(jié)包括內(nèi)容有:包超大幀使能位(PHUGEEN)、包填充使能位(PPADEN)、包CRC使能位(PCRCEN)和包改寫位(POVERRIDE)四個內(nèi)容。如
10、圖2所示。voidenc28j60PacketSend(u16_tlen,u8_t*packet)/配置發(fā)送緩沖區(qū)寫指針起始地址enc28j60Write(EWRPTL,TXSTART_INIT);enc28j60Write(EWRPTH,TXSTART_INIT8);/根據(jù)給定數(shù)據(jù)域的大小配置發(fā)送緩沖區(qū)的末尾地址enc28j60Write(ETXNDL,(TXSTART_INIT+len);enc28j60Write(ETXNDH,(TXSTART_INIT+len)8);/給每個數(shù)據(jù)包的包控制字節(jié)預(yù)留一個單元enc28j60WriteOp(ENC28J60_WRITE_BUF_MEM,0,
11、0 x00);/TODO,fixthisupif(uip_len8);/下一個數(shù)據(jù)包的讀指針NextPacketPtr=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0);NextPacketPtr|=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0)8;/讀數(shù)據(jù)包字節(jié)長度len=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0);len|=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0)8;/讀接收數(shù)據(jù)包的狀態(tài)rxstat=enc28j60ReadOp(ENC28J60_READ
12、_BUF_MEM,0);rxstat|=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0)8;/計算實際數(shù)據(jù)長度/移除CRC字段的長度來減少MAC所報告長度len=MIN(len,maxlen);/從緩沖區(qū)中將數(shù)據(jù)包復(fù)制到packet中enc28j60ReadBuffer(len,packet);/ERXRDPT讀緩沖器指針/ENC28J60將一直寫到該指針之前的一單元為止u16_trs,re;rs=enc28j60Read(ERXSTH);/ERXST接收緩沖區(qū)的起始地址rs=8;rs|=enc28j60Read(ERXSTL);re=enc28j60Read(E
13、RXNDH);/ERXND0收緩沖區(qū)的末尾地址re=8;re|=enc28j60Read(ERXNDL);if(NextPacketPtr-1re)enc28j60Write(ERXRDPTL,(re);/ERXRDPT接收讀地址enc28j60Write(ERXRDPTH,(re)8);elseenc28j60Write(ERXRDPTL,(NextPacketPtr-1);enc28j60Write(ERXRDPTH,(NextPacketPtr-1)8);/數(shù)據(jù)包個數(shù)遞減位EPKTCNT減1enc28j60WriteOp(ENC28J60_BIT_FIELD_SET,ECON2,ECON2_PKTDEC);returnlen;前一數(shù)據(jù)包結(jié)束下一個數(shù)據(jù)包的指針結(jié)構(gòu)1059h106AM10
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中央財經(jīng)大學(xué)《三維造型與建?!?023-2024學(xué)年第二學(xué)期期末試卷
- 定西職業(yè)技術(shù)學(xué)院《細(xì)胞生物學(xué)1》2023-2024學(xué)年第二學(xué)期期末試卷
- 漳州職業(yè)技術(shù)學(xué)院《普通話實訓(xùn)與測試》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國地質(zhì)大學(xué)(北京)《BIM技術(shù)原理及其應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽省潛山二中2024-2025學(xué)年高三5月質(zhì)量調(diào)查(三)物理試題含解析
- 2025屆江蘇省大豐區(qū)萬盈鎮(zhèn)沈灶初級中學(xué)初三下學(xué)期4月聯(lián)考化學(xué)試題試卷含解析
- 2025屆內(nèi)蒙古太仆寺旗寶昌第一中學(xué)高三第二學(xué)期期末質(zhì)量調(diào)研語文試題(文理合卷)試題含解析
- 遼寧省遼南協(xié)作校2025屆高三下學(xué)期聯(lián)考押題卷物理試題試卷含解析
- 上海市北郊高級中學(xué)2025年高三第六次質(zhì)量檢查生物試題含解析
- 華南農(nóng)業(yè)大學(xué)珠江學(xué)院《中藥學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- (青海專版)2023中考化學(xué)命題研究中考真題分析及2023備考策略
- CB/T 615-1995船底吸入格柵
- 《道德與法治》六年級下《我們愛和平》課件
- 衛(wèi)生法(教學(xué)講解課件)
- 高三沖刺100天勵志主題班會課件
- 全國工業(yè)產(chǎn)品生產(chǎn)許可證申請書
- 德能勤績廉個人總結(jié)的
- 中層干部崗位競聘報名表格評分表格評分標(biāo)準(zhǔn)
- 思想道德與法治課件:第六章 第一節(jié) 社會主義法律的特征和運行
- 有限空間作業(yè)及應(yīng)急物資清單
- 《個人信息保護法》解讀
評論
0/150
提交評論