<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è) > 嵌入式系統 > 設計應用 > 單片機在手持式RFID讀寫(xiě)器中的網(wǎng)絡(luò )接口設計

單片機在手持式RFID讀寫(xiě)器中的網(wǎng)絡(luò )接口設計

作者: 時(shí)間:2014-01-16 來(lái)源:網(wǎng)絡(luò ) 收藏

  FRAME 為幀周期信號,由當前主設備驅動(dòng),表示一次訪(fǎng)問(wèn)的開(kāi)始和持續時(shí)間。IRDY 為主設備準備好信號。

  TRDY 為從設備準備好信號。C /BE 為總線(xiàn)命令和字節使能復用信號。地址期是總線(xiàn)命令,數據期是字節使能。IDSEL 為初始化設備選擇信號。在參數配置讀寫(xiě)傳輸期間,用作片選。對于只有一個(gè)PCI 設備的情況,它可以總接高電平。RST 為復位信號。CLK 為系統時(shí)鐘信號,頻率范圍DC ~ 33 MHz.以上信號都在CLK 的上升沿有效。INTA 為中斷請求信號,RTL8139數據準備好后可以用來(lái)向主控制器發(fā)出中斷。

  DEVSEL 為設備選擇信號,表明驅動(dòng)它的設備已成當前訪(fǎng)問(wèn)的設備,由于系統中,RTL8139 是單一的PCI 設備,因此該信號可以不用。

  2 軟件結構

  RFID 讀寫(xiě)器系統軟件主要包括硬件設備驅動(dòng)程序、TCP /IP 協(xié)議棧、應用協(xié)議和其他用戶(hù)應用程序。軟件的流程如圖3 所示。網(wǎng)絡(luò

圖3 網(wǎng)絡(luò )接口軟件流程圖。

  其中應用協(xié)議和其他用戶(hù)應用程序將在二次開(kāi)發(fā)時(shí)根據RFID 讀寫(xiě)器的具體功能要求進(jìn)行設計,這里主要介紹硬件設備驅動(dòng)程序、TCP /IP 協(xié)議棧的實(shí)現方法。

  2. 1 硬件設備驅動(dòng)程序

  硬件設備驅動(dòng)是將PCI 接口當作的外部存儲器看待,以讀寫(xiě)外部存儲器的時(shí)序對PCI 接口進(jìn)行讀寫(xiě),再由PCI 接口將這種讀寫(xiě)操作時(shí)序轉換成PCI 時(shí)序對以太網(wǎng)控制器進(jìn)行操作。主要包括3 個(gè)部分,網(wǎng)絡(luò )初始化,發(fā)送控制和接收控制。主要完成對CR,TCR,RCR IMR ISR,RBSTART,MAR 等寄存器操作。

  發(fā)送控制過(guò)程在網(wǎng)絡(luò )中,幀傳輸的過(guò)程是發(fā)送方將待發(fā)送的數據按幀格式要求封裝成幀,然后同過(guò)網(wǎng)卡發(fā)送到網(wǎng)絡(luò )的傳輸線(xiàn)上。發(fā)送程序框圖如圖4所示。

RTL8139數據發(fā)送流程圖

圖4 RTL8139 數據發(fā)送流程圖。

  接收控制過(guò)程分成2 步,第1 步是根據哈稀算法判斷數據包是否是本地的數據包,如果是則接收放入FIFO,如果FIFO 里的數據包達到了RCR 寄存器預先設定閾值,把數據報放入RX_BUFF.第2 步主機程序將RX_BUFF 里的數據讀取到內存進(jìn)行處理。

  2. 2 TCP /IP 協(xié)議棧

  如圖5 所示,以太網(wǎng)控制器提供了邏輯鏈路層協(xié)議,TCP /IP 協(xié)議棧則通過(guò)底層的硬件設備驅動(dòng)程序來(lái)接收和發(fā)送數據,對接收到的以太幀數據進(jìn)行協(xié)議的分析,并給其上層應用提供一些簡(jiǎn)單、易用的函數。

RTL8139數據接收流程圖

圖5 RTL8139 數據接收流程圖。

-
-
  TCP /IP 實(shí)質(zhì)上是一系列協(xié)議的總稱(chēng),是實(shí)現Internet通訊必不可少的部分,包括十幾個(gè)協(xié)議標準,在這里要實(shí)現的是通過(guò)網(wǎng)絡(luò )讀取居民用表的讀數,傳輸的數據量少且對實(shí)時(shí)性要求不高,不需要全部的協(xié)議,只要實(shí)現幾個(gè)必備的即可,權衡之下,求在最小代碼、最小資源需求和功能實(shí)現間取得一個(gè)平衡: 只實(shí)現了ICMP、TCP、IP、ARP 4 個(gè)協(xié)議,組成一個(gè)小型化的TCP /IP 協(xié)議。因為任何一個(gè)以太網(wǎng)數據幀要發(fā)送時(shí)都必須要知道對方的物理地址,這能過(guò)ARP 協(xié)議獲得,所以要實(shí)現ARP 協(xié)議。而IP 協(xié)議是TCP, ICMP協(xié)議數據的傳輸格式; TCP 協(xié)議提供可靠的,可重組服務(wù); 而ICMP 協(xié)議是調試時(shí)所不可缺少的。另外,在實(shí)現重發(fā)功能時(shí),大多的做法是應用層不參與,當需要重發(fā)時(shí),由TCP /IP 協(xié)議把存儲在數據緩沖區的數據再發(fā)送一次即可,但在以為主處理器的情況下,因為單片機自身的資源有限,為了減少RAM 的使用,可以在需要重發(fā)時(shí)再由應用層產(chǎn)生這一幀數據即可,這無(wú)需太多的時(shí)間。這樣也不必每發(fā)送一幀數據都要存在緩沖區中以備重發(fā)時(shí)使用,進(jìn)一步節省了RAM。


評論


相關(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>