freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

tcpip與rs232協(xié)議轉(zhuǎn)換器的設計(文件)

2024-12-10 17:10 上一頁面

下一頁面
 

【正文】 */ void Socket_open(void) { /* built UDP socket*/ fd_server = socket(AF_INET, SOCK_DGRAM, 0)。 } } /* 函數(shù)名稱: socket_init() 函數(shù)功能: set broadcast mode , and blid ip and port0, 傳遞參數(shù): */ void socket_init(void) { int socket_status, ipaddr_status。 char buffer[256]。 = htons(PORT)。clientAddr, sizeof(clientAddr))。 // set server use broadcast mode socket_status = setsockopt(fd_server, SOL_SOCKET, SO_BROADCAST, (char)amp。 } socket_status = bind(fd_server, (struct sockaddr *) amp。 } } /* 函數(shù)名稱: Read_fro_uart_to_( ) 函數(shù)功能: This is one pthread function . receive char from uart ,and send these char to 傳遞參數(shù): */ void * Read_fro_uart_to_(void) { char * buffer。 if (buffer 0) {printf(malloc buffer creat fail \n)。 // open lock incase the cpu is used by only pthread printf(ready for receive datd .........\n)。 } //*****************start receive data ********************// while(*buffer != 39。 ret = read(fd_uart, buffer, 1)。clientAddr, sizeof(clientAddr))。mute。 exit( 1)。 exit(1)。) { ncount ++。 // receive data if (ret == 1) { printf(receive data fail \n)。 } while(1) { pthread_mutex_lock (amp。 packet_len = 256。 if(socket_status == 1) { printf(bind () call fail !\n)。 //set broadcast mode if(socket_status == 1) { printf(setsocketopt() call fail !\n)。 = htons(PORT)。 // = i_addr(SERVER_IP)。serverAddr, sizeof(serverAddr))。 int addr_len =sizeof(struct sockaddr_in)。 exit(1)。newtio)。newtio, BAUDRATE)。 [VTIME]=0。=~CRTSCTS。 amp。 amp。 //*********************************// bzero(amp。 //***********************************// tcgetattr(fd_uart, amp。 // if (fd_uart 0) { printf(uart0 open error!\n )。 pthread_t id_fromuart, id_from。 本次設計主要是 參考杭州立宇泰電子有限公司的 ARMSYSC開發(fā)板設計完成的 ,主要的創(chuàng)新點在: ( 1) 采用了 uclinux 作為操作系統(tǒng)進行嵌入式系統(tǒng)開發(fā)。 通過本次畢業(yè)設計,讓我系統(tǒng)的了解了 嵌入式系統(tǒng) 產(chǎn)品 開發(fā) 的一般流程和注意事項, 串口 服務器 也基本達到設計要求。 圖 12 串口數(shù)據(jù)流程 圖 13 說明了多串口數(shù)據(jù)幀等待打包傳輸?shù)倪^程。同時,還要滿足具體應用對實時性的要求:對每一個串口規(guī)定一個最長響應時間。發(fā)送是入?yún)f(xié)議棧的過程,如圖 11所示,接收是出協(xié)議棧的過程 (圖略 ),不同之處在于對數(shù)據(jù)的收/發(fā)處理。同樣,網(wǎng)口發(fā)送數(shù)據(jù)也要有一致的幀格式,如圖 10所示。 } 軟件 工 作原理剖析 本節(jié)在單串口 TCP/IP協(xié)議轉(zhuǎn)換的基礎(chǔ)上,拓展成多串口編程 思路, 其 實質(zhì)是在定義 串口數(shù)據(jù) 幀 發(fā) 送格式時多了一個串口號,所以可以看作是單串口的編程框架圖,有利于 設計的升級。 void pthread_open(void) { ret = pthreat_create(amp。option, sizeof(option))。 = AF_INET。 = htons(PORT)。 ( 1) UDP 協(xié)議套接字的 初 始化 ,以廣播的形式在局域網(wǎng)發(fā)送,具體見附錄。 SO_OOBINLINE 當接收到 OOB 數(shù)據(jù)時會馬上送至標準輸入設備 SO_LINGER 確保數(shù)據(jù)安全且可靠的傳送出去。參數(shù) level 代表欲設置的網(wǎng)絡層,一般設成 SOL_SOCKET 以存取 socket 層。 addrlen:serv_addr 的長度。 connect 武漢工業(yè)學院 2020 畢業(yè)論文 第 21 頁 共 35 頁 int connect(int sockfd, struct sockaddr * serv_addr,int addrlen)。當有多個客戶端程序和服務端相連時, 使用這個表示可以介紹的排隊長度。 addrlen:是 sockaddr 結(jié)構(gòu)的長度。 socket int socket(int domain, int type,int protocol) domain:說明我們網(wǎng)絡程序所在的主機采用的通訊協(xié)族 (AF_UNIX 和 AF_INET 等 )。 圖 8 UDP Server程序開發(fā)步驟 武漢工業(yè)學院 2020 畢業(yè)論文 第 20 頁 共 35 頁 本文在開發(fā)時選擇支持以 下 模式: TCP Server. TCP Client, UDP Server/ Client。TCP是基于連接的協(xié)議,在正式收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。 int Len。 int nByte。 /* line discipline */ unsigned char c_cc[NCC]。 /* 輸入模式標志 */ unsigned short c_oflag。CSANOW, amp。 //保存 原來 串 口 屬性 tcgetattr(fd, amp。 exit(一 1); 武漢工業(yè)學院 2020 畢業(yè)論文 第 18 頁 共 35 頁 } tcgetattr(0, amp。測試 過程通過 NFS網(wǎng) 絡 文件系統(tǒng)進行,在 Pc端配置 NFS服務器, 設武漢工業(yè)學院 2020 畢業(yè)論文 第 17 頁 共 35 頁 置 共 享文件夾及權(quán)限,調(diào)試無誤后,加入自己開發(fā)的程序 重 新編譯 uClinux內(nèi)核,并將編譯好的二進制文件 固 化 到開發(fā) 板的 ROM中, 使其開機后自動運行。 五 . 軟件程序構(gòu)架 軟件結(jié)構(gòu) 由于程序的開發(fā)和執(zhí)行是在 PC和 ARM兩個不同的平臺上進行的,因此需要進行交叉編澤和連接。保存配置,退出。 (4) 配置 Network Applications 選中“ Network Applications ”敲空格進入,選中以下幾項: [*] arp ?? [*] ifconfig [*] id ?? [*] ping ?? [*] route ?? 編譯 uClinux 在 /opt/目錄下,按下面的步驟對 uClinux源碼包進行編譯: make dep????????? 建立依賴關(guān)系 make clean (非必要 )????? 清除舊的編譯結(jié)果 make lib_only???????? 編譯庫 make user_only??????? 編譯用戶程序 make romfs????????? 產(chǎn)生 rom文件系統(tǒng) make image????????? 產(chǎn)生映像文件 make???????????? 編譯內(nèi)核 編譯成功后,在 uClinuxdist/目錄下將產(chǎn)生 images目錄,其中包含的 3個文件:, 和 。選中第 2項: [*] Networking Support 按 ESC退出。用戶選項就被設置好了。內(nèi)核選項就被設置好了。 選中內(nèi)核設置項和用戶選項: [*] Customize Kernel Settings [*] Customize Vendor/User Settings 建議通過直接載入 立宇泰公司 提供的內(nèi)核配置文件 Config_Kernel 和用戶配置文件 Userconfig_eth (到 download/ 下 載 ) 來 完 成 配 置 。因此,對內(nèi)核重新編譯,刪除不需要的功能模塊,可使系統(tǒng)運行所需的內(nèi)核顯著減小,從于縮減資源的使用量,也實現(xiàn)了 uclinux 的量身定制。這里我們使用的內(nèi)核版本是 Linux 。 ( 5) Linux在內(nèi)核結(jié)構(gòu)的設計中考慮適應系統(tǒng)的可裁減性的要求。 ( 2) Linux源代碼隨處可見,注釋豐富,文檔齊全,易于解決各種問題。與一般全靠硬件實現(xiàn)的串口服務器比較起來,配置要復雜,需要用戶具有一定的技術(shù)背景,不過因為帶有操作系統(tǒng),其靈活性也是硬件串口服務器所不能比擬的。 (2)平臺級。同時, uClinux保留了 Linux系統(tǒng)良好的穩(wěn)定性,強大的網(wǎng) 絡功能和優(yōu)秀的文件系統(tǒng)支持等特點,在嵌入式設備中應 用 十 分廣泛,被稱為“微控制領(lǐng)域的 Linux系統(tǒng)” 。 Boot Loader 的作用主要是完成用戶程序在編譯后下載到目標板上運行時,首先對系統(tǒng)進行存儲器的映射并建立調(diào) 試環(huán)境,然后通過 ADS調(diào)試環(huán)境下載,顯然,這個過程對普通用戶來說顯得特別煩瑣,然而,要在裸板(沒有任何程序的系統(tǒng)板)上調(diào)試運行程序,也只能采用這種方法。下載網(wǎng)絡測試程序,同過 ping看網(wǎng)卡 RTL8019是否接通。 本設計采用的是此芯片作為網(wǎng)卡,系統(tǒng)網(wǎng)卡接口電路原理圖如圖 4。 系統(tǒng)串口模塊電路如圖 3 RS232 電平轉(zhuǎn)換電路。 MAX232 芯片內(nèi)部有一個電源電壓變換器,可以把輸入的+ 5V電源變換城 RS232C 輸出電平所需 10V 電壓,所以采用此芯片接口的串行通信系統(tǒng)只要單一的+ 5V 電源就可以。將以太網(wǎng)發(fā)送緩沖區(qū)的串口幀封裝在 UDP 包中,并傳給 IP 層;同時,接收以太網(wǎng)數(shù)據(jù)幀并向上層層解包,分離應用 層數(shù)據(jù),然后數(shù)據(jù)的解析處理交由武漢工業(yè)學院 2020 畢業(yè)論文 第 8 頁 共 35 頁 串口發(fā)送模塊完成,實現(xiàn) RS232 串口流與以太網(wǎng)端口流的透明轉(zhuǎn)換。微控制器控制串口數(shù)據(jù)收發(fā),接收串口源數(shù)據(jù),封裝后寫入以太網(wǎng)發(fā)送緩沖區(qū)打包傳輸;同時,接收以太網(wǎng)應用層的數(shù)據(jù),解析并 發(fā)送給測控設備。 S3C44BOX采用平坦地址空間,其內(nèi)置的 8個外部存儲 bank可擴展出 256MB的地址空間。 其圖如下: 武漢工業(yè)學院 2020 畢業(yè)論文 第 6 頁 共 35 頁 圖 1 系統(tǒng)結(jié)構(gòu)框圖 模塊電路的介紹 下面將分塊介紹協(xié)議轉(zhuǎn)換的主控芯片 s3c44b0,串口收發(fā)模塊,及 TCP
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1