基于ARM微處理器TCP/IP協(xié)議棧LwlP實(shí)現(xiàn)
CS8900A初始化部分的主要內(nèi)容如下:
軟件復(fù)位,并檢查復(fù)位完成標(biāo)志是否置位;
設(shè)定Memory工作模式,使其4K內(nèi)存地址映射到主機(jī)內(nèi)存中;
設(shè)定臨時(shí)使用的以太網(wǎng)物理地址,真實(shí)地址需要向權(quán)威機(jī)構(gòu)申請;
設(shè)定接收幀的類型,至少要能接收廣播;
確定數(shù)據(jù)的傳送方向,一般設(shè)為全雙工方式;
中斷使能允許;
使能接收中斷;
確定CS8900A的中斷管腳號,根據(jù)硬件線路使用情況來確定;
接收發(fā)送使能。
其中需要說明的是由于TCP/IP通信非常頻繁,在ARM中接收發(fā)送數(shù)據(jù)采用中斷模式占用資源太多,因此本文采用的是查詢方式,也可以保證數(shù)據(jù)的基本通信。
CS8900A的數(shù)據(jù)發(fā)送基本流程如下:在收到由主機(jī)發(fā)來的數(shù)據(jù)報(bào)后,偵聽網(wǎng)絡(luò)線路。如果線路忙,它就等到線路空閑為止,否則,立即發(fā)送該數(shù)據(jù)幀。發(fā)送過程中,首先,它添加以太網(wǎng)幀頭(包括先導(dǎo)字段和幀開始標(biāo)志),然后,生成CRC校驗(yàn)碼,最后,將此數(shù)據(jù)幀發(fā)送到以太網(wǎng)上。數(shù)據(jù)發(fā)送流程圖如圖3所示。
數(shù)據(jù)接收時(shí),它將從以太網(wǎng)收到的數(shù)據(jù)幀在經(jīng)過解碼、去掉幀頭和地址檢驗(yàn)等步驟后緩存在片內(nèi)。在CRC校驗(yàn)通過后,它會(huì)根據(jù)初始化配置情況,通知主機(jī)CS8900A收到了數(shù)據(jù)幀,然后傳到主機(jī)的存儲(chǔ)區(qū)中。數(shù)據(jù)接收流程圖如圖4所示。
4 上層Socket基本通信實(shí)現(xiàn)
LwIP已經(jīng)實(shí)現(xiàn)了大部分的Socket網(wǎng)絡(luò)連接函數(shù),我們要實(shí)現(xiàn)Socket,的基本通信,只需要在此基礎(chǔ)上通過調(diào)用其Socket網(wǎng)絡(luò)連接函數(shù)實(shí)現(xiàn)簡單的客戶機(jī)/服務(wù)器模式即可。儀器作為服務(wù)器方,主機(jī)作為客戶機(jī)進(jìn)行連接。實(shí)現(xiàn)結(jié)果如圖5所示,發(fā)送程控命令FREQ 300,返回FREQ 300.000000MHzOK表示設(shè)置成功。
5 結(jié)束語
本系統(tǒng)已經(jīng)在場強(qiáng)儀AV3942中使用,能夠通過網(wǎng)絡(luò)對其進(jìn)行遠(yuǎn)程控制,實(shí)踐證明,該系統(tǒng)簡便實(shí)用,能夠方便、靈活的實(shí)現(xiàn)各種通信系統(tǒng)的互聯(lián)。
tcp/ip相關(guān)文章:tcp/ip是什么
評論