<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用微控制器進(jìn)行網(wǎng)絡(luò )通信的網(wǎng)卡配置

利用微控制器進(jìn)行網(wǎng)絡(luò )通信的網(wǎng)卡配置

作者: 時(shí)間:2008-10-31 來(lái)源:網(wǎng)絡(luò ) 收藏
利用進(jìn)行網(wǎng)絡(luò )通信的關(guān)鍵是驅動(dòng)和配置網(wǎng)絡(luò )接口卡,而RTL8019是REALTEK公司高集成度的專(zhuān)用以太網(wǎng)接口芯片,支持PnP自動(dòng)探測,并且內嵌16K SRAM,有全雙工的通信接口,可以通過(guò)交換機在雙絞線(xiàn)上同時(shí)發(fā)送和接收數據,使帶寬從10兆增加到20兆,是用來(lái)進(jìn)行以太網(wǎng)通信的理想芯片。
  RTL8019AS是針對ISA總線(xiàn)設計的,在PC上用來(lái)實(shí)現網(wǎng)絡(luò )的物理層協(xié)議,主要包括網(wǎng)卡與網(wǎng)絡(luò )電纜的物理連接、介質(zhì)訪(fǎng)問(wèn)控制(如CSMA/CD)、數據幀的拆裝、幀的發(fā)送與接收、錯誤校驗、數據信號的編/解碼(如曼徹斯特碼和NRZ碼的轉換等)、數據的串、并行轉換等功能。而要實(shí)現這些功能,必須要對網(wǎng)絡(luò )接口芯片進(jìn)行正確的配置。
  而大部分微控制器是8位的,所以用8位和RTL8019AS接口時(shí)必須把接口芯片置成8位模式,現用具體代碼來(lái)詳細說(shuō)明用對RTL8019AS進(jìn)行配置,從而實(shí)現利用微控制器進(jìn)行網(wǎng)絡(luò )通信。
  RTL8019共有四頁(yè)寄存器組,每頁(yè)寄存器組有16個(gè)寄存器。實(shí)際上網(wǎng)絡(luò )通信也就是對這些寄存器進(jìn)行設置。其中CR寄存器是控制命令寄存器,地址是00h,其各個(gè)位的含義如表1所示,這個(gè)寄存器用來(lái)選擇寄存器頁(yè),控制遠程DMA操作。
  PS1,PS0用來(lái)指定寄存器的頁(yè)。在實(shí)際配置寄存器時(shí),首先要指定要配置的寄存器屬于哪一頁(yè)(就是進(jìn)行PS1和PS0的設置),然后對那一頁(yè)中的寄存器寫(xiě)入配置信息。
要進(jìn)行網(wǎng)絡(luò )通信必須對網(wǎng)絡(luò )控制芯片初始化,初始化比較煩瑣,但非常重要,它決定者網(wǎng)絡(luò )通信的一些重要參數,詳細配置過(guò)程如下。
表1 CD寄存器各位的含義
NONAMETYPEBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
00hCDR/WPSIPS0RD2RD1RD0TXRSTASTP


  1.初始化復位寄存器,地址1fh,代碼如下。
  mov nicIOAddr,#$1F;給出復位寄存器的地址
  mov w,#0;寫(xiě)入數據0
  call NICWrite;調寫(xiě)子程序,把數據寫(xiě)入
  2.選擇RTL8019as為用戶(hù)配置模式,然后對9346CR寄存器進(jìn)行寫(xiě)使能,再對RTL8019AS的配置寄存器2進(jìn)行設置,代碼如下。
  clr nicIOAddr;選CR寄存器
  mov w,#d1h;選第三頁(yè),停止傳輸操作
  call NICWrite;寫(xiě)入數據
  mov nicIOAddr,#$01;選9346CR寄存器
  mov w,#d0h;配置寄存器寫(xiě)使能
  call NICWrite;寫(xiě)入數據
  mov nicIOAddr,#05h;選配置寄存器2
  mov w,#0h;網(wǎng)絡(luò )連接自動(dòng)檢測使能(10BaseT)
  call NICWrite;寫(xiě)入數據
  3.配置當前頁(yè)寄存器(寫(xiě)時(shí)選擇第一頁(yè)07h寄存器,讀時(shí)選擇第二頁(yè)07h寄存器)。
  inc nicIOAddr;($07) CURR寄存器指向接收緩沖區的第一頁(yè)(每頁(yè)256個(gè)字節)
  mov w,#RXBUF_START;把開(kāi)始地址寫(xiě)入CUR寄存器中
  call NICWrite;寫(xiě)入數據
  4.配置接收緩沖區的大?。ㄔ诘谝豁?yè)寄存器組中).
  clr nicIOAddr;選擇第一頁(yè)寄存器
  mov w,#01h;寫(xiě)入數據1
  call NICWrite;寫(xiě)入數據
  inc nicIOAddr;“頁(yè)開(kāi)始寄存器”($01, PSTART)設置接收緩沖區的開(kāi)始頁(yè)
  mov w,#RXBUF_START
  call NICWrite;寫(xiě)入數據
  inc nicIOAddr;“頁(yè)終止寄存器”($02, PSTOP)設置接收緩沖區的終止頁(yè)
  mov w,#RXBUF_END
  call NICWrite;寫(xiě)入數據
  5.設置邊界寄存器
  inc nicIOAddr;($03)BNRY()用作一個(gè)指針,指向數據緩沖區中的最后一頁(yè)的接收數據
  mov w,#RXBUF_START
  call NICWrite;寫(xiě)入數據
  6.設置中斷寄存器(地址在第一頁(yè)的07h)
  mov nicIOAddr,#$07;ISR中斷寄存器
  mov w,#$FF
  call NICWrite;寫(xiě)入數據
  中斷寄存器各個(gè)位的含義如表2所示。
  8.設置接收配置寄存器(0C,RCR)
  mov nicIOAddr,#$0C;RCR設置為扔掉錯誤的接收包;不支持多播地址的包;接收少于64字節的數據包;支持廣播地址;物理目的地址必須和在PARO-5的接點(diǎn)地址相匹配;數據在存儲器中緩沖;拒絕接收有錯誤的包。
  mov w,#%11000110
  call NICWrite;
表2 中斷寄存器各個(gè)位的含義

符號描 述
7RDCNIC開(kāi)始時(shí)置"1",開(kāi)始命令寫(xiě)入CD時(shí)置"1"當包從緩沖區讀取時(shí)置"0"
6RDC當遠程DMA操作完成時(shí)置"1"
5CNT當網(wǎng)絡(luò )計算器被設置時(shí)置"1"
4OVW當接收緩沖區用完時(shí)置"1"
3當傳輸包由于網(wǎng)絡(luò )問(wèn)題而掉時(shí)被置"1"
2RXE當有以下情況時(shí)被置"1":CRC校驗錯;
幀對起錯誤;丟包
1PTX這個(gè)位指示發(fā)送包沒(méi)有錯誤
0PRX這個(gè)位指示接收包沒(méi)有錯誤


  9.設置發(fā)送配置寄存器(0D,TCR)
  inc nicIOAddr;TCR設置為包要進(jìn)行地址匹配檢查,CRC校驗和幀對齊校驗;物理目的地址必須和在PARO-5的接點(diǎn)地址相匹配;不支持多播地址的包;發(fā)送少于64字節的數據包。
  mov w,#%11100000
  call NICWrite
  10.設置數據配置寄存器(0E,DCR)
  inc nicIOAddr;數據配置在低8位,每次傳送一個(gè)字節,而不是一個(gè)字
  mov w,#%10111000
  call NICWrite;調寫(xiě)子程序,把數據寫(xiě)入
  11.開(kāi)始接收數據
  clr nicIOAddr;選擇CR寄存器
  mov w,#%00000010;Page0,數據設置為開(kāi)始接收
  call NICWrite;調寫(xiě)子程序,把數據寫(xiě)入
  利用單片機對網(wǎng)絡(luò )控制器進(jìn)行上述設置后,再結合高層的TCP/IP協(xié)議,就可以在以太網(wǎng)上進(jìn)行數據傳輸了。
  利用8位微控制器配置網(wǎng)絡(luò )控制卡的寄存器較為煩瑣,上述過(guò)程和代碼只是簡(jiǎn)要的介紹,用戶(hù)也可針對自己的特殊需要進(jìn)行一些特殊設置,總之,要以提高數據傳輸效率為原則。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>