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

正文內(nèi)容

一個linux下基于電話線路的數(shù)據(jù)通信程序的設(shè)計與實現(xiàn)—免費計算機畢業(yè)設(shè)計論文(文件)

2024-12-23 11:23 上一頁面

下一頁面
 

【正文】 圖 9 read函數(shù)流程 MODEM 初始化的實現(xiàn) int init_MODEM(void) { /*如果第一次初始化失敗則進行第二次 ,如果第二次也失敗則程序退出 */ write_to_MODEM(ATE0V0\r, 7)。 } } return 1。options)。 tcsetattr(fd, TCSANOW, amp。 tcgetattr(fd, amp。 tcflush(fd, TCIFLUSH)。 Linux操作系統(tǒng)對內(nèi)置 MODEM的支持非常差 ,尤其內(nèi)置軟貓 ,大部分內(nèi)置軟貓在 Linux 上都無法識別。一臺電腦設(shè)為接收端 (main 函數(shù)中調(diào)用 receive_file() ),另一臺電腦設(shè)為發(fā)送端 (main 函數(shù)中調(diào)用 send_file() ),編譯連接。比較接收端與發(fā)送端的用于測試的文件之后發(fā)現(xiàn),兩個文件是相同的,證明串口 通信部分程序工作正常。將兩臺電腦上的 MODEM 分別與兩根電話線接連,硬件環(huán)境就搭建完畢。略等幾秒,屏幕上顯示 CONNECT 115200,表示連接成功,這時候MODEM 會安靜下來。上面的測試 ,已經(jīng)證明在雙方連接成功的情況下 ,可以進行字符串的傳輸 ,所以基于單個字符傳輸?shù)奈募魉蛥f(xié)議也可以正常工作。本設(shè)計也可作為工廠或公司的數(shù)據(jù)通信手段,但只適合數(shù)據(jù)通信量低的情況。我覺得最大的益處是我學(xué)會了搜索資料的方法,體會到了網(wǎng)絡(luò)上資料的豐富。我花了一個星期的時間找原因,最后才發(fā)現(xiàn)是自己沒有添加串口進虛擬機,而添加串口的過程只需要半分鐘。 [3] 求是科技 ,李現(xiàn)勇 .Visual C++串口通信技術(shù)與工程實踐 [M].北京:人民郵電出版社 ,2020。 [7] David HOWTO[EB/OL].,2020/2020。 本文是在劉云本老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識和嚴(yán)謹?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對順利完成本課題起到了極大的作用。 ( 4)學(xué)??稍试S學(xué)位論文被查閱或借閱。 卓姆強巴,藏族,四十二歲,天獅名犬馴養(yǎng)基地公司總裁,也是復(fù)旦大學(xué)生物系客座教授,主講世界名犬。 “ 幾千年來,全世界所公認的,體形最龐大,性格最兇猛的,叫獒。” 瑪瑞 滿腹狐疑,悻悻地去了,心里喃喃念叨著:“瘋了,教授一定是瘋了。我一直 想到上海來探望你,看看是不是真的?!? “哦 ?”方新。 方新收起電腦,喃喃道:“入藏后,就不能無線上網(wǎng)了,只是電腦里的很多資料很有用處?!彪娔X上在氣象局發(fā)來的橘紅色區(qū)域中又用更深的大紅色畫出一塊,從珠峰以北畫到錫金和尼泊爾境內(nèi)。 或許聽錯了。他沒有讓他的父母失望,如今已是擁有千萬資產(chǎn)的公司老總,也是著名大學(xué)的教授,可謂名利俱盛,讓他起家的資本,不是別的,是犬。 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。 ( 2)學(xué)校 可以采用影印、縮印或其他復(fù)制方式保存學(xué)位論文。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機構(gòu)的學(xué)位或證書而使用過的材料。 [5] Greg Serial HOWTO[EB/OL].,1997/2020。 參考文獻 [1] 史迪文斯 .UNIX環(huán)境高 級編程 [M].北京:機械工業(yè)出版社 ,2020。說明有目的的、正確的搜索是非常重要的。 通過完成本設(shè)計,增加了硬件編程的經(jīng)驗,對計算機接口有了更深的認識。這樣,不論兩臺電腦距離多遠,只要可以接到電話網(wǎng),并配有 56k MODEM,就可以互傳文件。 Linux 端發(fā)起撥號連接 , Windows 端應(yīng)答,仍然成功建立了連接。 我先在 WINDOWS 端發(fā)起撥號連接,半分鐘后 Linux 端振鈴響起 (我用了 IC卡,所以撥號過程有點漫長 )。發(fā)送端先啟用的話,數(shù)據(jù)馬上被送到接收端串 第 22 頁 共 24頁 口,但接收端串口還沒被啟動,接收端 open()串口之后,之前被發(fā)來的數(shù)據(jù)就會丟失了。這時環(huán)境搭建完畢,我先運行接收程序,再運行發(fā)送程序,這時候顯示數(shù)據(jù)通信開始。外置 MODEM 是即插即用 ,直接接在 Linux 機上就可以用 ,內(nèi)置軟貓只能用在 WINDOWS 機上。options)。 [VMIN] = 0。 } 當(dāng)撥號結(jié)束進入數(shù)據(jù)通迅階段之后 ,還需要把串口設(shè)置恢復(fù) : void recover_port(void) { struct termios options。 [VTIME] = 0。 ftl(fd, F_SETFL, 0)。 if( read_from_MODEM(OK) != 1 ) { /*二次初始化失敗 ,可能是 MODEM 本身出了問題 */ printf(Init MODEM failed, check your MODEM)。 //刷新數(shù)據(jù)線 tcsetattr(fd, TCSANOW, amp。= ~OPOST。= ~(INPCK | IGNPAR |IXON |IXOFF |IXANY)。= ~PARENB。 第 18 頁 共 24頁 amp。options, B115200)。 ftl(fd, F_SETFL, 0)。發(fā)送方將從接收方送來的字符與原發(fā)送字符做比較,如果相等,則說明傳輸過程中沒有出錯,那么就接著發(fā)送下一個字符,直到文件結(jié)束;如果不相等,則說明傳輸過程中出現(xiàn)了錯誤,那么重新把這個字符發(fā)一遍,直到發(fā)送方發(fā)送的字符和接收到的字符相等為止。要實現(xiàn)傳送文件的功能,還需要打開文件,將文件中的字符一個一個的讀取出來等等文件操作的功能,這可以由 gcc中提供的文件操作庫函數(shù)來完成,而且這些存函數(shù)的功能非常強大。 (設(shè)置 S0寄存器為 n0,就可以在 n 聲鈴響后自動應(yīng)答;如果 S0 寄存器為0,則需要手動應(yīng)答。 這時候就可以讓 MODEM 撥號了, write(fd, “ ATDT12345678\r” , 13)。該命令選擇 MODEM 返回給 DTE的結(jié)果碼是數(shù)字形還是字符形式。該命令控制 MODEM 在命令狀態(tài)打開或關(guān)閉 AT 命令回顯,很顯然命令回顯不利用對 MODEM 返回數(shù)據(jù)的判斷,所以關(guān)閉它。但這里使用的是 MODEM 最常用,最簡單的功能,而且是用在公用電話網(wǎng)上,所以省去了很多麻煩,直接使用出廠設(shè)置都可以。所以雖然上面述說了很多關(guān)于DTE 與 DCD 數(shù)據(jù)通信時握手的方法,但在前面的串口設(shè)置中已經(jīng)將其統(tǒng)統(tǒng)設(shè)置為總是有效,所以 在與 MODEM 通信時可以忽略它們。 當(dāng) DTE 獲得 CTS 信號后,通過 TxD 線向 DCE 發(fā)出串行信號, DCE(MODEM)將這些數(shù)字信號調(diào)制成模擬信號 (載波信號 ),傳向?qū)Ψ?。此時,若 DCE( MODEM)允許發(fā)送,則向 DTE回 答 DTE回答 CTS(允許發(fā)送 )信號。 DTE 與 DCE 的握手 DTE(Data Terminal Equipment)與 DCE(Data Communications Equipment)通過九針 RS232C連接,其針腳含義如表 3所示。 MODEM 接收并解釋 AT 命令, DET 只有在命令狀態(tài)才能對 MODEM 進行控制。在在線狀態(tài)下, MODEM 與遠端系統(tǒng)通信。 第 13 頁 共 24頁 MODEM 的控制 MODEM 的兩種工作狀態(tài) MODEM 的狀態(tài)可以分為命令狀態(tài)和在線狀態(tài)。不能一次性讀寫超過串口緩存本身大小的字符數(shù),不過 4K已經(jīng)足夠使用了。 讀寫串口 寫數(shù)據(jù)到串口是很簡單的,只需要使用 write()系統(tǒng)呼叫去傳送數(shù)據(jù): n = write(fd, “ ATZ/R” , 4)。 ftl函數(shù)是在 open函數(shù)后面加入的。 TIME 的值的大小可以根據(jù)不同情況而定,但是不能太長,超過 30s 程序就會報錯,這里選擇的是 200(20s)。所以讀取函數(shù)最少要讀取一個字節(jié)才能正常返回。 MIN 0, TIME = 0: 函數(shù)在讀到了 MIN值的字符數(shù)后返回。其中常用到的只有其中的 VMIN 和 VTIME 兩個元素。其余的項大多出于歷史原因要追溯到打印機和終端還不能和串行數(shù)據(jù)流保持一致的時候,現(xiàn)在已經(jīng)沒有使用價值了。 ISIG 是讓某些信號起作用,這里不需要這些信號,所以不也不考慮選擇 ISIG。 ◆ 等待來自多信號源的輸入。這是終端設(shè)備的標(biāo)準(zhǔn)處理模式,這種方式下, read 會傳回一整行完整的輸入,一行的結(jié)束默認是以 NL、文件結(jié)束符,或是一個行結(jié)束字符。 輸入模式成員 c_iflag 控制任何在端口接收字符的輸入處理, INPCK 和IGNPAR 分別代表校驗有效和忽略校驗錯誤,但是并沒有使用校驗位,所以屏蔽這兩項。= ~(ICANON | ECHO | ECHOE | ISIG) amp。 CS8,~PARENB, ~CSTOPB 將把串行數(shù)據(jù)設(shè)置為:八位數(shù)據(jù)位,無奇偶校驗, 1 位停止位。 CLOCAL 代表本地線不改變端口的擁有者, CREAD 表示接收有效。= ~CSTOPB。 //Mask the character size bits |= CS8。options, B115200)。 c_cflag 成員控制波特率、數(shù)據(jù)位、校驗、停止位和硬件流控制,所有支持的設(shè)置都有常數(shù)對應(yīng)。它定義了終端控制結(jié)構(gòu) termios 和POSIX 控制函數(shù)。 串口設(shè)置與讀寫 c_cflag 控制項設(shè)置 在對串口進行讀寫之前,必須對串口進行設(shè)置,這也是串口操作部分最復(fù)雜,最重要的一步。如果不指明這個,任何輸入都會影響此進程。串行端口的設(shè)備文件名在 Linux 中是: /dev/ttyS*(*代 表 0,1, 2? )。 第 9 頁 共 24頁 VMware Workstation 中設(shè)備的使用很多都是真實的,不是模擬出來的。 Linux 下可以使用 ls – l /dev/ttyS*來檢查系統(tǒng)是否正確的建立了串口設(shè)備。但這兩部分并不獨立, MODEM 的初始化及撥號連接等等一切對 MODEM 的控 制和訪問,都要通過串口,因為串口是計算機與 MODEM 的唯一通道。本設(shè)計使用的是 56K MODEM,不同于現(xiàn)在市面上常見的 ADSL MODEM。 gcc 編譯器的調(diào)用參數(shù)大約有 100 多個,其中多數(shù)參數(shù)可能根本就用不到 ,開發(fā)過程中使用最多的命令就是: gcc O test , 是 C 語言源程序, test 是可執(zhí)行文件, O 是 gcc 的參數(shù), 對程序進行優(yōu)化編譯、連接,采用這個選項,整個源代碼會在編譯、連接過程中進行優(yōu)化處理,這樣產(chǎn)生的可執(zhí)行 第 7 頁 共 24頁 文件的執(zhí)行效率可以提高,但是,編譯、連接的速度就相應(yīng)地要慢一些。接 著調(diào)用 cc1進行編譯,這個階段根據(jù)輸入文件生成以 .o 為后綴的目標(biāo)文件。在 Linux 系統(tǒng)中,可執(zhí)行文件沒 有統(tǒng)一的后綴,系統(tǒng)從文件的屬性來區(qū)分可執(zhí)行文件和不可執(zhí)行文件。 MODEM 由 AT 命令和幾個特定的 SDTE MODEM MODEM DTE 第 6 頁 共 24頁 寄存器的狀態(tài)確定 DTE 發(fā)出的是命令還是數(shù)據(jù)。 AT 命令的建立使得 DTE(Data Terminal Equipment,用于發(fā)送和接收數(shù)據(jù)的數(shù)據(jù)終端設(shè)備 )從以上雜條中解脫出來,振鈴檢測、載波檢測、速率選擇等等都可以 由 MODEM 來完成。 MODEM的工作過程如圖 2 如示: 模擬信號 數(shù)字信號 數(shù)字信號 圖 2 MODEM數(shù)模轉(zhuǎn)換 AT 命令 和其它通信標(biāo)準(zhǔn)一樣, MODEM 通信也有其自己的一套 規(guī)則和標(biāo)準(zhǔn)。計算機所能處理的數(shù)字信號不能直接進入這樣的模擬通道, MODEM 就是用來實現(xiàn)數(shù)字信號和模擬信號相互轉(zhuǎn)換的設(shè)備。停止位原先是用來給計算機時間處理前面的字符的,但現(xiàn)在只是用來同步計算機和接收字符。 Space 校驗意味著校驗 始 終為 0,而 mark 校驗意味著校驗位始終為 1。數(shù)據(jù)能夠在任何時候傳送或接受,所以稱做異步。 這里 僅討論異步串行數(shù)據(jù)。 DB9 的信號引腳說明如表 1 所示: 表 1 RS232 各引腳含義 RS232 Signals Pin 描述 Pin 描述 1 DCD Data Carrier Detect 6 DSR Data Set Ready 2 RXD Received Data 7 RTS Request To Send 3 TXD Transmitted Data 8 CTS Clear To Send 4 DTR Data Terminal Ready 9 RI Ring Detect 5 GND Logic Ground 還有其它兩種常見的 串行接口標(biāo)準(zhǔn)是 RS422和 RS574。信
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1