|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
LPC 2210 PPP/IP/UDP |
| 作者:tmd781224 欄目:ARM技術(shù) |
前端時間做GPRS的項目,先分別把UC/IP和LW/IP的移植到UCOS II,編譯后執(zhí)行,程序內(nèi)部有問題,因剛接觸UCOS的,好多不熟,時間又比較緊,沒深入調(diào)。轉(zhuǎn)頭看看ZLG的EasyARM2200光盤中的PPP包,發(fā)現(xiàn)結(jié)構(gòu)還蠻清晰的,稍微改動下就可以實現(xiàn)PPP了,再把IP和UDP協(xié)議加上,已可以順利實現(xiàn)基于udp/IP/PPP的通信了。 有誰做過uc/IP或者LW/IP的成功移植的么,想交流交流啊。俺們被項目趕著走,實現(xiàn)了一個就沒時間摸別的實現(xiàn)途徑了。 |
| 2樓: | >>參與討論 |
| 作者: zzg 于 2004/12/21 23:57:00 發(fā)布:
tmd781224你好 問一下,ZLG這個TCP和PPP包好用嗎?你在實際的應(yīng)用中有沒有出現(xiàn)穩(wěn)定性的問題?關(guān)注ZLG的開發(fā)板有一段時間了,前些時候打電話去問了一下,他們說PPP還沒有完全做完,所以我也拿不定主意了。 |
|
| 3樓: | >>參與討論 |
| 作者: tmd781224 于 2004/12/22 9:00:00 發(fā)布:
哦 我是用的他們的PPP包(稍微改寫了些),IP,UDP的東西我是用的MOTOROLA提供的一個單片機上的協(xié)議,網(wǎng)上有下的。大概看了一下,zlg的tcp/Ip包是綁定在ethernet上的,如果要切換到ppp數(shù)據(jù)連路的話,改動的地方比我修改用MOTOROLA那個udp,ip要多。所以我沒用他們的tcp/ip包。 穩(wěn)定性么,這倆天要測一下,前面多少也測試了一些,主要測試udp/ip/ppp的ping-pang類型的應(yīng)答,gprs終端往公網(wǎng)某IP服務(wù)器發(fā)udp包,公網(wǎng)服務(wù)器返回udp包給gprs終端,跑了一個多小時沒問題。 其實如果你的數(shù)據(jù)包類型不是很復(fù)雜,也比較短的話,那么只要稍微修改下他們的ipcp和ping.c中的部分代碼就可以實現(xiàn)了。因為基于這樣簡單的ppp協(xié)議上是不支持數(shù)據(jù)包的拆分和組合的,也不支持udp/ip頭的壓縮等高級功能。 |
|
| 4樓: | >>參與討論 |
| 作者: sdusthd 于 2004/12/22 15:22:00 發(fā)布:
沒有感覺到好 不會吧,ZLG的那個tcp/ip協(xié)議不是很穩(wěn)定呀! 我用奇數(shù)個的數(shù)據(jù)包ping它 不通,而且不能分包。 |
|
| 5樓: | >>參與討論 |
| 作者: lixiaoshui 于 2004/12/22 15:29:00 發(fā)布:
256字節(jié)的限制 我在使用ZLG TCP/IP時碰到256字節(jié)的限制。收包時只要單個包大于256字節(jié),之后的數(shù)據(jù)就會出錯。大家有碰到過這種情況嗎? |
|
| 6樓: | >>參與討論 |
| 作者: zlgARM 于 2004/12/23 9:34:00 發(fā)布:
關(guān)于PING的問題 /*把以下函數(shù)代替ICMP.C文件的對應(yīng)函數(shù)就可以了。*/ /* 關(guān)于IP的分包,嵌入式應(yīng)用沒有必要,這會浪費大量的資源 */ void icmp_process(uint8 * ICMPSENDPTR,uint8 num) { uint8 i,TEMP; struct _pkst SendIcmpData; if(((icmppro*)ICMPSENDPTR)->icmpf.e_icmp.type==0x08)//請求! { ((icmppro*)ICMPSENDPTR)->icmpf.e_icmp.type=0;//回復(fù) ((icmppro*)ICMPSENDPTR)->ipf.e_ip.ttl--; for (i = 0; i < 4; i++)//IP翻轉(zhuǎn) { TEMP = ((icmppro*)ICMPSENDPTR)->ipf.e_ip.SourceIp[i]; ((icmppro*)ICMPSENDPTR)->ipf.e_ip.SourceIp[i] = ((icmppro*)ICMPSENDPTR)->ipf.e_ip.DestId[i]; ((icmppro*)ICMPSENDPTR)->ipf.e_ip.DestId[i] = TEMP; } ((icmppro*)ICMPSENDPTR)->ipf.e_ip.Crc=0; OSSchedLock(); ((icmppro*)ICMPSENDPTR)->ipf.e_ip.Crc=CreateIpHeadCrc(ICMPSENDPTR);//(((icmppro*)ICMPSENDPTR)->ipf); #ifdef Little_End ((icmppro*)ICMPSENDPTR)->ipf.e_ip.Crc=swap_int16(((icmppro*)ICMPSENDPTR)->ipf.e_ip.Crc); #endif OSSchedUnlock(); SendIcmpData.length=((icmppro*)ICMPSENDPTR)->ipf.e_ip.TotalLen; #ifdef Little_End SendIcmpData.length=swap_int16(SendIcmpData.length); #endif ((icmppro*)ICMPSENDPTR)->icmpf.e_icmp.Crc=0; ((icmppro*)ICMPSENDPTR)->icmpf.e_icmp.Crc=CheckSumUdp((uint8 *)&ICMPSENDPTR[20],SendIcmpData.length-20); //((icmppro*)ICMPSENDPTR)->icmpf.e_icmp.Crc=CreateIcmpCrc(((icmppro*)ICMPSENDPTR)->icmpf); #ifdef Little_End ((icmppro*)ICMPSENDPTR)->icmpf.e_icmp.Crc=swap_int16(((icmppro*)ICMPSENDPTR)->icmpf.e_icmp.Crc); #endif SendIcmpData.STPTR=NULL; SendIcmpData.DAPTR=ICMPSENDPTR; OSSemPend(SendFlag,5,&TEMP); if(TEMP==OS_NO_ERR) { Send_Ip_To_LLC(&SendIcmpData,((icmppro*)ICMPSENDPTR)->ipf.e_ip.DestId,num); } OSSemPost(SendFlag); } else if(((icmppro*)ICMPSENDPTR)->icmpf.e_icmp.type==0x00)//回復(fù) { i=i; } } |
|
| 7樓: | >>參與討論 |
| 作者: zlgARM 于 2004/12/23 9:52:00 發(fā)布:
關(guān)于單個包大于256字節(jié)的問題。 EMAIL聯(lián)系ETHERNET@ZLGMCU.COM |
|
| 8樓: | >>參與討論 |
| 作者: zzg 于 2004/12/25 1:51:00 發(fā)布:
你說的moto的是不是moto的應(yīng)用資料AN2120SW 它不是包含了PPP IP UDP嘛,我這幾天正在看,感覺非常的精簡,很清晰,請問你是不是用的這個呢?它的PPP層很簡單,也不支持TCP,我正在看,準備移植到430上 |
|
| 9樓: | >>參與討論 |
| 作者: liujun1898 于 2006/11/9 18:27:00 發(fā)布:
請問關(guān)于ipcp改哪里 請問關(guān)于ipcp改哪里 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |