綜合實(shí)驗(yàn)報(bào)告基于嵌入式系統(tǒng)的串口以太網(wǎng)轉(zhuǎn)換器_第1頁
綜合實(shí)驗(yàn)報(bào)告基于嵌入式系統(tǒng)的串口以太網(wǎng)轉(zhuǎn)換器_第2頁
綜合實(shí)驗(yàn)報(bào)告基于嵌入式系統(tǒng)的串口以太網(wǎng)轉(zhuǎn)換器_第3頁
綜合實(shí)驗(yàn)報(bào)告基于嵌入式系統(tǒng)的串口以太網(wǎng)轉(zhuǎn)換器_第4頁
綜合實(shí)驗(yàn)報(bào)告基于嵌入式系統(tǒng)的串口以太網(wǎng)轉(zhuǎn)換器_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、現(xiàn)場(chǎng)答辯成績(jī): 實(shí)驗(yàn)報(bào)告成績(jī): 總成績(jī): 重 慶 郵 電 大 學(xué)綜合實(shí)驗(yàn)報(bào)告 題目:基于嵌入式系統(tǒng)的串口-以太網(wǎng)轉(zhuǎn)換器單位(二級(jí)學(xué)院): 學(xué) 生 姓 名: 專 業(yè): 班 級(jí): 學(xué) 號(hào): 指 導(dǎo) 教 師: 設(shè)計(jì)時(shí)間: 2010 年 11 月重慶郵電大學(xué)制目 錄一、 實(shí)驗(yàn)作品功能描述二、 實(shí)驗(yàn)作品界面或使用說明三、 小組分工與個(gè)人所負(fù)責(zé)的模塊說明四、 程序流程圖五、 任務(wù)的定義、實(shí)現(xiàn)及主要模塊六、 實(shí)驗(yàn)中遇到的問題及解決方法七、 實(shí)驗(yàn)結(jié)果八、 實(shí)驗(yàn)體會(huì)九、 進(jìn)一步改進(jìn)方案和作品應(yīng)用建議附錄:個(gè)人所負(fù)責(zé)編寫的部分主要代碼一、 實(shí)驗(yàn)作品功能描述 該作品是實(shí)現(xiàn)一個(gè)基于嵌入式系統(tǒng)的串口-以太網(wǎng)轉(zhuǎn)換器。該網(wǎng)

2、關(guān)能夠?qū)崿F(xiàn)rs-232與以太網(wǎng)tcp/ip之間的協(xié)議轉(zhuǎn)換,從而能為各種串口設(shè)備提供以太網(wǎng)接入功能。該轉(zhuǎn)換器實(shí)現(xiàn)的是串口數(shù)據(jù)的透明化傳輸,即轉(zhuǎn)換器并不對(duì)通信的數(shù)據(jù)內(nèi)容作任何修改,只是對(duì)通信數(shù)據(jù)進(jìn)行打包和解包工作,以實(shí)現(xiàn)串口數(shù)據(jù)的網(wǎng)絡(luò)傳輸。二、實(shí)驗(yàn)作品使用說明串口pc機(jī)該設(shè)計(jì)最終在實(shí)驗(yàn)室arm3000開發(fā)板平臺(tái)上驗(yàn)證成功,一個(gè)up-netarm3000 通過網(wǎng)線與pc機(jī)相連接,發(fā)送板的arm 監(jiān)視以太網(wǎng),將接收到的字符發(fā)送到串口收發(fā)器發(fā)送,pc機(jī)收發(fā)器監(jiān)視串口,將接收的字符發(fā)送到以太網(wǎng),數(shù)據(jù)傳送示意圖如下.以太網(wǎng) 數(shù)據(jù)轉(zhuǎn)換圖數(shù)據(jù)轉(zhuǎn)換過程為,pc開始,主機(jī)發(fā)送數(shù)據(jù)到以太網(wǎng)口,以太網(wǎng)接收到數(shù)據(jù),發(fā)送到

3、串口;串口輪詢總線,接收到數(shù)據(jù)以后,發(fā)送到以太網(wǎng)口,最后將數(shù)據(jù)返回給pc機(jī)。三、小組分工及個(gè)人所負(fù)責(zé)模塊這次設(shè)計(jì),我主要負(fù)責(zé)總函數(shù)的設(shè)計(jì)及調(diào)用。主要用到了實(shí)驗(yàn)手冊(cè)中的串口實(shí)驗(yàn),udp通信實(shí)驗(yàn),系統(tǒng)消息循環(huán)實(shí)驗(yàn)這幾個(gè)實(shí)驗(yàn)。程序見附錄。四、程序設(shè)計(jì)流程圖 本次設(shè)計(jì)的主程序流程圖如下通過編寫串口驅(qū)動(dòng)程序模塊,為應(yīng)用程序的設(shè)計(jì)建立了一個(gè)很好的平臺(tái),應(yīng)用程序的編寫只需調(diào)用系統(tǒng)服務(wù)或者是調(diào)用各種api函數(shù),大大簡(jiǎn)化了應(yīng)用程序的設(shè)計(jì)的復(fù)雜度。在應(yīng)用程序中,初始化各個(gè)全局變量后,調(diào)用socket api函數(shù)建立了服務(wù)器通訊方式,udp 建立過程 在具體通訊時(shí),本系統(tǒng)作為服務(wù)器,監(jiān)聽客戶端(一般是pc機(jī))的連接

4、 。建立連接后,該任務(wù)把客戶端通過以太網(wǎng)發(fā)送來的數(shù)據(jù)保存到串口發(fā)送緩沖池,串口驅(qū)動(dòng)程序就會(huì)自動(dòng)地把數(shù)據(jù)發(fā)送給串口設(shè)備。然后,程序判斷串口接收緩沖池是否有數(shù)據(jù),若有,就調(diào)用socket api函數(shù)中的sendto()函數(shù)把串口接收緩沖池的數(shù)據(jù)轉(zhuǎn)發(fā)給以太網(wǎng),送到客戶端。該任務(wù)一直處于這樣一個(gè)循環(huán)中,從而實(shí)現(xiàn)了串口數(shù)據(jù)的網(wǎng)絡(luò)傳輸。本次設(shè)計(jì)運(yùn)用到了u/cos-ii操作系統(tǒng),定義了兩個(gè)主要任務(wù):main_task和receive_task。main_task流程圖:發(fā)送數(shù)據(jù)sendto()串口是否收到數(shù)據(jù) 否 是receive_task流程圖如下所示: 五、 任務(wù)的定義、實(shí)現(xiàn)及主要模塊 本設(shè)計(jì)中定義了兩

5、個(gè)任務(wù):main_task及receive_task;main_task模塊完成的主要任務(wù):1)初始化了網(wǎng)絡(luò)initnetwork(),配置網(wǎng)絡(luò),強(qiáng)行設(shè)置開發(fā)板的網(wǎng)絡(luò)地址:ip4_address32(ipaddr32,192,168,0,120);ip4_address32(ipmaskaddr32,255,255,255,0);ip4_address32(ipgateaddr32,192,168,0,1);uart_printf(current ip is 192.168.0.120n);initosnet(ipaddr32, ipmaskaddr32, ipgateaddr32, mac)

6、;/配置網(wǎng)絡(luò)。2) 設(shè)定計(jì)算機(jī)端套接口屬性,定義了使用的ip協(xié)議、地址以及使用端口號(hào):servaddr.sin_family = af_inet; /ipv4協(xié)議servaddr.sin_addr.s_addr = (11024)|(016)|(1688)|192;servaddr.sin_port = htons(5000); /端口3) 創(chuàng)建開發(fā)板發(fā)送端套接字clientsock_out:clientsock_out=socket(pf_inet,sock_dgram, 0);/創(chuàng)建套接字4) 設(shè)定了開發(fā)板發(fā)送端套接口屬性,定義了發(fā)送板ip地址以及使用端口號(hào):cliaddr_out.sin

7、_family = af_inet; /ipv4協(xié)議cliaddr_out.sin_port=htons(4999); /板子發(fā)送數(shù)據(jù)的端口cliaddr_out.sin_addr.s_addr=inaddr_any;/填入本機(jī)ip5)綁定開發(fā)板發(fā)送端套接字,可以進(jìn)行數(shù)據(jù)通信:bind(clientsock_out, (struct sockaddr*)&cliaddr_out, sizeof(cliaddr_out);6)主要處理函數(shù),串口查詢函數(shù),如果收到數(shù)據(jù),返回非零,否則,返回0。int uart_poll(int uartnum) if(uartnum=0) return (rutr

8、stat0 & 0x1); elsereturn (rutrstat1 & 0x1); receive_task模塊完成的主要任務(wù):1) 創(chuàng)建開發(fā)板接收端套接字clientsock_in:clientsock_in=socket(pf_inet,sock_dgram, 0);2)設(shè)定了開發(fā)板接收端套接口屬性,定義了接收板ip地址以及使用端口號(hào):cliaddr_in.sin_family= af_inet; /使用ipv4協(xié)議族cliaddr_in.sin_port=htons(4998); /板子接受數(shù)據(jù)的端口cliaddr_in.sin_addr.s_addr=inaddr_any;/填入本

9、機(jī)ip地址3)綁定接收端套接字:bind(clientsock_in, (struct sockaddr*)&cliaddr_in, sizeof(cliaddr_in);六、實(shí)驗(yàn)中遇到的問題及解決方法 1、在調(diào)試的時(shí)候,把pc的ip地址與板子的ip地址設(shè)置為相同,這樣數(shù)據(jù)不能正常發(fā)送。改為不同的ip之后就可以正常通信了。還有就是調(diào)試的時(shí)候波特率的設(shè)置問題,我是通過網(wǎng)上查資料的方法才知道要設(shè)為9600。 2、在串口通信與udp通信匯總時(shí),他們出現(xiàn)了頭文件重復(fù)定義的情況,必須慢慢查找出來。七、實(shí)驗(yàn)結(jié)果該作品實(shí)現(xiàn)一個(gè)基于嵌入式系統(tǒng)的串口-以太網(wǎng)轉(zhuǎn)換器。該網(wǎng)關(guān)能夠?qū)崿F(xiàn)rs-232與以太網(wǎng)tcp/ip

10、之間的協(xié)議轉(zhuǎn)換,從而能為各種串口設(shè)備提供以太網(wǎng)接入功能??梢栽诎l(fā)送端發(fā)送一個(gè)字節(jié)的數(shù)據(jù),通過以太網(wǎng),再通過串口,傳送到板子,最后顯示出發(fā)送的數(shù)據(jù)。而且通信也是雙向的,反過來同樣可實(shí)現(xiàn),兩端的發(fā)送與接收互不影響。實(shí)驗(yàn)結(jié)果: pc機(jī) 串口八、實(shí)驗(yàn)體會(huì)通過本次試驗(yàn),我了解了嵌入式arm的一些基本知識(shí),包括軟件和硬件。掌握了串口的通信和udp通信的聯(lián)系和具體方法,學(xué)會(huì)了使用串口調(diào)試工具等等。通過對(duì)作品的制作,我把理論知識(shí)應(yīng)用到了實(shí)際的實(shí)物中,學(xué)到了很多平時(shí)沒學(xué)到的東西。十、 進(jìn)一步改進(jìn)方案和作品應(yīng)用建議 本作品只能支持一種波特率下的雙向收發(fā)功能,而且只實(shí)現(xiàn)了單字節(jié)的收發(fā),以后應(yīng)該向多波特率多字節(jié)發(fā)送方

11、面研究。 附錄:void initnetwork()/初始化網(wǎng)絡(luò)u32 ipaddr32,ipmaskaddr32,ipgateaddr32;u8 mac6;uart_printf(begin init ethernet and udp.n); /強(qiáng)設(shè)ipip4_address32(ipaddr32,192,168,0,120);ip4_address32(ipmaskaddr32,255,255,255,0);ip4_address32(ipgateaddr32,192,168,0,1);uart_printf(current ip is 192.168.0.120n);initosnet(

12、ipaddr32, ipmaskaddr32, ipgateaddr32, mac);/配置網(wǎng)絡(luò)ostimedly(1000);uart_printf(init ethernet and udp is ok!n);int uart_poll(int uartnum)if(uartnum=0)return (rutrstat0 & 0x1);elsereturn (rutrstat1 & 0x1);int main(void)armtargetinit(); /開發(fā)板初始化osinit(); /操作系統(tǒng)初始化 uhalr_resetmmu();/復(fù)位mmuostaskcreate(main_task, (void *)0, (os_stk *)&main_stackstacksize*8-1, main_task_prio);/ 創(chuàng)建系統(tǒng)任務(wù) 一個(gè)收 一個(gè)發(fā)ostaskcreate(receive_task, (void *)0, (os_stk *)&receive_stackstacksize*8-1, receive_task_prio);osaddt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論