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