TMS320LF2407與LAN91C111型嵌入式以太網(wǎng)接口電路的實現(xiàn)
TX EMPTY INT:當(dāng)TX FIFO為空時置to;
AUTO RELEASE:如果置為1,發(fā)送包成功后,packet number不寫到TX completion FIFO中,而且它所使用的存儲空間被自動釋放。
(7)使用“每發(fā)送一個包產(chǎn)生一個中斷”方案時,AUTO RELEASE=0,該方案的流程如上文所述。使用“每發(fā)送一個序列的包產(chǎn)生一個中斷”方案時允許TX EMPTY INT和TX INT,AUTORELEASE=1,當(dāng)發(fā)送完FIFO中的最后一個包后,產(chǎn)生TX EMPTY INT中斷。若出現(xiàn)嚴(yán)重的發(fā)送錯誤,則產(chǎn)生TX INT中斷,同時將發(fā)送失敗的包的packet number保存到FIFO Ports寄存器,這樣DSP就可以知道發(fā)送過程停止了。這種方案可以減少DSP的負(fù)擔(dān),而且存儲空間的釋放也更迅速。當(dāng)AUTO RELEASE=1時,DSP不能得到成功發(fā)送包的packet number。
4.2.3 接收數(shù)據(jù)包流程
(1)DSP設(shè)置receive control寄存器中的RXEN位,允許接收包。
(2)含有正確地址的包被接收到,從MMU請求存儲空間,并分派一個packet number,內(nèi)部的DMA邏輯產(chǎn)生連續(xù)的地址,并將接收到的字寫到memory中,如果超界,包被丟棄,存儲空間被釋放。當(dāng)檢測到包的結(jié)束,Status Word被寫到接收包的最前面,byte count寫到第二個字。如果CRC校驗正確,packet number被寫到RX FIFO,由于RX FIFO非空時,因此將產(chǎn)生RCV INT中斷;如果RCR校驗不正確,則存儲空間被釋放,而且不產(chǎn)生中斷。
(3)DSP接收到中斷后開始執(zhí)行中斷處理程序,首先讀入Interrupt Status寄存器,如果產(chǎn)生接收中斷(RCV INT位為1),則可從FIFO ports寄存器得到接收包的packet number,而且可從data register將接收包傳送到DSP的內(nèi)存或外存中。當(dāng)處理結(jié)束,DSP向處理器發(fā)送REMOVE AND RELEASE FROM TOP OF RX命令(即設(shè)置寄存器MMUCOM為0x0060)以釋放使用的存儲空間和packet number。
5 結(jié)束語
該系統(tǒng)能夠正確地接入快速以太網(wǎng),具備100/10Mbit/s、全雙工/半雙工自適應(yīng)等多種功能,符合IEEE802.3/802.3μ-100Base-TX/1Obase-T規(guī)范,其嵌入式以太網(wǎng)接口支持RJ45和以太網(wǎng)的連接,可以通過以太網(wǎng)接入Internet,從而實現(xiàn)從Internet上監(jiān)控嵌入式設(shè)備。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評論