單片機(jī)在手持式RFID讀寫器中的網(wǎng)絡(luò)接口設(shè)計(jì)
FRAME 為幀周期信號(hào),由當(dāng)前主設(shè)備驅(qū)動(dòng),表示一次訪問(wèn)的開始和持續(xù)時(shí)間。IRDY 為主設(shè)備準(zhǔn)備好信號(hào)。
TRDY 為從設(shè)備準(zhǔn)備好信號(hào)。C /BE 為總線命令和字節(jié)使能復(fù)用信號(hào)。地址期是總線命令,數(shù)據(jù)期是字節(jié)使能。IDSEL 為初始化設(shè)備選擇信號(hào)。在參數(shù)配置讀寫傳輸期間,用作片選。對(duì)于只有一個(gè)PCI 設(shè)備的情況,它可以總接高電平。RST 為復(fù)位信號(hào)。CLK 為系統(tǒng)時(shí)鐘信號(hào),頻率范圍DC ~ 33 MHz.以上信號(hào)都在CLK 的上升沿有效。INTA 為中斷請(qǐng)求信號(hào),RTL8139數(shù)據(jù)準(zhǔn)備好后可以用來(lái)向主控制器發(fā)出中斷。
DEVSEL 為設(shè)備選擇信號(hào),表明驅(qū)動(dòng)它的設(shè)備已成當(dāng)前訪問(wèn)的設(shè)備,由于系統(tǒng)中,RTL8139 是單一的PCI 設(shè)備,因此該信號(hào)可以不用。
2 網(wǎng)絡(luò)接口軟件結(jié)構(gòu)
RFID 讀寫器系統(tǒng)網(wǎng)絡(luò)接口軟件主要包括硬件設(shè)備驅(qū)動(dòng)程序、TCP /IP 協(xié)議棧、應(yīng)用協(xié)議和其他用戶應(yīng)用程序。網(wǎng)絡(luò)接口軟件的流程如圖3 所示。
圖3 網(wǎng)絡(luò)接口軟件流程圖。
其中應(yīng)用協(xié)議和其他用戶應(yīng)用程序?qū)⒃诙伍_發(fā)時(shí)根據(jù)RFID 讀寫器的具體功能要求進(jìn)行設(shè)計(jì),這里主要介紹硬件設(shè)備驅(qū)動(dòng)程序、TCP /IP 協(xié)議棧的實(shí)現(xiàn)方法。
2. 1 硬件設(shè)備驅(qū)動(dòng)程序
硬件設(shè)備驅(qū)動(dòng)是將PCI 接口當(dāng)作單片機(jī)的外部存儲(chǔ)器看待,單片機(jī)以讀寫外部存儲(chǔ)器的時(shí)序?qū)CI 接口進(jìn)行讀寫,再由PCI 接口將這種讀寫操作時(shí)序轉(zhuǎn)換成PCI 時(shí)序?qū)σ蕴W(wǎng)控制器進(jìn)行操作。主要包括3 個(gè)部分,網(wǎng)絡(luò)初始化,發(fā)送控制和接收控制。主要完成對(duì)CR,TCR,RCR IMR ISR,RBSTART,MAR 等寄存器操作。
發(fā)送控制過(guò)程在網(wǎng)絡(luò)中,幀傳輸?shù)倪^(guò)程是發(fā)送方將待發(fā)送的數(shù)據(jù)按幀格式要求封裝成幀,然后同過(guò)網(wǎng)卡發(fā)送到網(wǎng)絡(luò)的傳輸線上。發(fā)送程序框圖如圖4所示。
圖4 RTL8139 數(shù)據(jù)發(fā)送流程圖。
接收控制過(guò)程分成2 步,第1 步是根據(jù)哈稀算法判斷數(shù)據(jù)包是否是本地的數(shù)據(jù)包,如果是則接收放入FIFO,如果FIFO 里的數(shù)據(jù)包達(dá)到了RCR 寄存器預(yù)先設(shè)定閾值,把數(shù)據(jù)報(bào)放入RX_BUFF.第2 步主機(jī)程序?qū)X_BUFF 里的數(shù)據(jù)讀取到內(nèi)存進(jìn)行處理。
2. 2 TCP /IP 協(xié)議棧
如圖5 所示,以太網(wǎng)控制器提供了邏輯鏈路層協(xié)議,TCP /IP 協(xié)議棧則通過(guò)底層的硬件設(shè)備驅(qū)動(dòng)程序來(lái)接收和發(fā)送數(shù)據(jù),對(duì)接收到的以太幀數(shù)據(jù)進(jìn)行協(xié)議的分析,并給其上層應(yīng)用提供一些簡(jiǎn)單、易用的函數(shù)。
圖5 RTL8139 數(shù)據(jù)接收流程圖。
評(píng)論