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

正文內(nèi)容

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

 

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