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

正文內(nèi)容

基于串口的文件傳輸系統(tǒng)的設(shè)計通信-閱讀頁

2024-12-24 00:58本頁面
  

【正文】 是 1 300、 1200、 2400、 4800、 9600、和 19200 等。 2 發(fā)送接收時鐘 在串行通信中,二進制系列是以數(shù)字信號波形的形式出現(xiàn)的,對這些連續(xù)的數(shù)字波形的死尸發(fā)送和接受是在發(fā)送 /接收時鐘的控制下進行的。在接收數(shù)據(jù)時,接收器在接受時鐘的有效沿(上升沿)作用下對接收數(shù)據(jù)按位采樣,并按位串行移入移位寄存器。 發(fā)送 /接收時鐘頻率與波特率的關(guān)系如下: 發(fā)送 /接收時鐘頻率 =n * 發(fā)送 /接收波特率 表達式中的 n=1, 16, 64。 當 n=16 時,發(fā)送 /接收時鐘頻率 =。 在實際應(yīng)用中,可根據(jù)要求的傳輸波特率和錯選擇的倍數(shù) n 來確定發(fā)送 /接收時鐘頻率。 RS232C 標準規(guī)定,當數(shù)據(jù)傳輸速度小于20kbit/s,并且電纜的電容負荷小于 2500pF時,傳誦距離小于 30m。在實際應(yīng) 用中,對遠距離傳輸,一干都需要加入 Modem[3]。在約定中對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢錯方式以及控制字符定義等做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。 目前,采用的串行通信協(xié)議有兩類:異步通信和同步通信。面向字節(jié)計數(shù)的同步協(xié)議主要用于 DEC 公 司的網(wǎng)絡(luò)結(jié)構(gòu)中。在傳輸一個字符時總是以起始位開始,以停止位結(jié)束。因為異步通信的實質(zhì)是字符的發(fā)送是隨機的,接收方通??蓹z測到如下一些錯誤: ( 1)奇偶錯。一般,接收方檢測到奇偶錯時,則要求發(fā)送方重新發(fā)送。在上一個字符還 未被處理器讀出前,本次又接收到一個字符,則會引起超越錯。通常,接收方檢測到超越錯時,可提高處理器周期檢測的速率或接收和發(fā)送雙方重新修改后的數(shù)據(jù)傳輸速率。 ( 3)幀格式錯。一般來說,幀格式錯的原因比較復(fù)雜,可能時雙方協(xié)議的數(shù)據(jù)格式不匹配、線路噪聲改變了停止位的狀態(tài)或因時鐘不匹配或不穩(wěn)定未能按照協(xié)議裝配成一個完整的字符幀等。 ? 面向字符的同步傳輸方式 這種協(xié)議的典型代表是 IBM 公司在 20 世紀 60 年代制定的二進制同步通信協(xié)議BSC,它是按照對話習(xí)慣,為半雙工傳輸設(shè)計的面向字符的同步通信協(xié)議。本次畢業(yè)設(shè)計所采用的通信協(xié)議就是基于該種協(xié)議。最有代表性的同步協(xié)議有 三種: SDLC HDLC ADCCP 這些協(xié)議的特點是所傳輸?shù)囊粋蓴?shù)據(jù)可以是任意位,是靠約定的位組合模式,不是靠特定字符來標志偵的開始和結(jié)束 [3]。這種通信方式使用的數(shù)據(jù)線少,在遠距離通信中可以節(jié)約通信成本,當然,其傳輸速度比并行 傳輸慢。 在數(shù)據(jù)輸入過程中,數(shù)據(jù) 1 位 1位地從外設(shè)進入接口的“接收移位寄存器”,當“接收移位寄存器”中已接收完 1個字符的各位后,數(shù)據(jù)就從“接收移位寄存器”進入“數(shù)據(jù)輸入寄存器”。(并行讀取,即 D7— D0 同時被讀至累加器中)。 在數(shù)據(jù)輸出過程中, CPU把要輸出的字符 (并行地)送入“數(shù)據(jù)輸出寄存器”,“數(shù)據(jù)輸出寄存器”的內(nèi)容傳輸?shù)健鞍l(fā)送移位寄存器”,然后由“發(fā)送移位寄存器”移位,把數(shù)據(jù) 1 位 1 位地送到外設(shè)。 接口中的“控制寄存器”用來容納 CPU 送給此接口的各種控制信息,這些控制信息決定接口的工作方式。例如,用狀態(tài)寄存器的 D5 位為“ 1”表示“數(shù)據(jù)輸出寄存器空”,用 D0 位表示“數(shù)據(jù)輸入寄存器滿”,用 D2 位表示“奇偶檢驗錯”等。 串行通信具有連接簡單、使用靈活方便、數(shù)據(jù)傳遞可靠等優(yōu)點,在工業(yè)監(jiān)控、數(shù)據(jù)采集和實時控制系統(tǒng)中得到了廣泛應(yīng)用。 Windows 9x支持基于線程的搶先式多任務(wù)處理。每個進程至少有一個主線程,還可包括若干子線程,線程間獨立運行。基于線程的多任務(wù)使得同一程序的兩個或多個部分可以同時運行。 操作系統(tǒng)在給各個線程分配 CPU 時間片時,通過其本身的調(diào)度機制來評價各個活動線程的優(yōu)先級,優(yōu)先執(zhí)行優(yōu)先級別高的活動線程,掛起優(yōu)先級別低的活動線程;當活動線程優(yōu)先級別相同時,系統(tǒng)調(diào)度程序則以輪轉(zhuǎn)方式分配 CPU 時間片 。 Windows 9x系統(tǒng)提供的開放式通用功能增強接口 Win32 API(應(yīng)用編程接口 )是一個復(fù)雜函數(shù)、消息的集合。 在開發(fā)微機控制系統(tǒng)的過程中,我們經(jīng)常需要通過 RS232 串行接口與外部設(shè)備進行通信。在 DOS 時代,編寫串行通信程序是一件相當復(fù)雜的工作,程序員需要具備相當?shù)挠布R,對可編程串行通信接口芯片的內(nèi)部寄存器定義、工作方式、指令字等相關(guān)內(nèi)容有所了解,才有可能著手編寫程序,大量的時間和精力都花在了如何與硬件打交道上,而不是花在我們的主要目的 —— 獲取與處理數(shù)據(jù)上;在 Windows 下,Win32API 提供了使用 CreateFile/WriteFile 等文件 I/O 函數(shù)進行串行口操作的方法,但是在實現(xiàn)上仍然是相當煩瑣的。利用已有的 ActiveX 控件,我們只需要編寫少量的代碼,就可以輕松高效地完成任務(wù) [4]。 ActiveX 控件包括一系列的屬性、方法和事件,使用 ActiveX 控件的應(yīng)用程序和 ActiveX 控件之間的工作方式是客戶/服務(wù)器方式,即應(yīng)用程序通過 ActiveX 控件提供的接口來訪問 ActiveX 控件的功能 [5]。具體的來說,它提供了兩種處理通信問題的方法:一是事件驅(qū)動(Event- driven)方法,一是查詢法。 19 本章小結(jié) 本章首先介紹了串口通信 的概念和它的應(yīng)用領(lǐng)域,其次為了全面了解串口知識,從串口在通信中的優(yōu)缺點、串口的工作方式、數(shù)據(jù)傳輸?shù)恼_性控制、速率與傳輸距離的關(guān)系、通信協(xié)議和工作原理等方面加以闡述,希望通過這幾個方面的論述能夠?qū)Υ诘幕A(chǔ)知識進行總結(jié)和回顧,為后面的文件傳輸系統(tǒng)設(shè)計打下基礎(chǔ)。 常見的單片機系統(tǒng)都具備一個串行口(如 80C51 系列),有的還具備了兩個串行口(如 DS80C320 系列)甚至多個串行口。 串行通信雖然有其自身優(yōu)點:如適合長距離通信,有一定的糾錯能力等,但并行通信在短距離(數(shù)米范圍內(nèi))傳輸過程中的優(yōu)點是顯而易見的。而且單片機與 PC 機的串口數(shù)據(jù)必須一一對等,否則不能傳輸 。其次, PC機的串口電平值為 +12V~12V,單片機是 TTL電平( 0+5V),兩者必須要經(jīng)過電平轉(zhuǎn)換芯片進行電平間的轉(zhuǎn)換。而對于單片機,串口( UART)是最常用的端口,尤其對于存在兩個或多個串口的單片機來說,充分利用串口進行通信是非常重要的。實質(zhì)上就是一個數(shù)據(jù)串 并、并 串轉(zhuǎn)換的過程。由此可見后面兩個端口都不是完全的 8 位 [7]。 雙列直插式 74LS164 引腳定義,其中: QAQH為并行輸出的數(shù)據(jù),送入 PC機并口 378H端口(接收數(shù)據(jù)的 8 個數(shù)據(jù)位);單片機串口輸出的數(shù)據(jù)從 AB 輸入; CLR 信號用于清 21 除輸出數(shù)據(jù)(通常用在移位完成時);內(nèi)部數(shù)據(jù)移位依靠時鐘 CLK信號上升沿(由單片機 TX提供)控制。 雙列直插式 74LS165 引腳定義,其中: AH 為并行輸入的數(shù)據(jù),接 PC機并口 378H端口(接收數(shù)據(jù)的 8個數(shù)據(jù)位);單 片機串口接收的數(shù)據(jù)( RXD端口)從 QH輸入; SH/LD信號用于重新裝載數(shù)據(jù)(通常用在數(shù)據(jù)完全移出后); SER是用于填充數(shù)據(jù)移出后的空位的邏輯電平信號(邏輯 1或 0);而數(shù)據(jù)是否移動由 CLK INH 和 CLK 聯(lián)合控制;內(nèi)部數(shù)據(jù)移位依靠時鐘 CLK 信號(仍由單片機的 TXD 提供)上升沿控制。將單片機的 、 口分別與 PC 并口的第 15 腳、第 16 腳相連。 軟件方面,由于是用串口進行 并行 通信,因此就不能將串口的工作方式設(shè)置為方式 0(移位寄存器輸入 /輸出方式)以外的其他方式。串行數(shù)據(jù)通過 RXD 輸入 /輸出, TXD 用于發(fā)送控制輸入輸出數(shù)據(jù)移 位的時鐘脈沖。 e 小結(jié) 現(xiàn)在單片機的應(yīng)用越來越廣泛,單片機與 PC之間的通信是一個非常重要的應(yīng)用。最簡單的方法是將 PC的并口對應(yīng)引腳與單片機的 P1口和 P3 口直接相連,然后軟件上實現(xiàn)。下位機能夠通過串口通信及時地把現(xiàn)場的狀態(tài)信息傳送給上位機,而上位機也能夠通過串口通信接收現(xiàn)場信息 ,進行相應(yīng)的數(shù)據(jù)分析、計算、信息存儲、狀態(tài)顯示等。因此,串口通信在整個控制系統(tǒng)中起著關(guān)鍵性的作用。他將傳統(tǒng)的繼電器控制系統(tǒng)與計算機 22 技術(shù)結(jié)合在一起,具有高可靠性、適應(yīng)工業(yè)過程現(xiàn)場以及強大的聯(lián)網(wǎng)功能等特點,被廣泛應(yīng)用。 在微機與 PLC 之間構(gòu)成的集散控制系統(tǒng)中,多數(shù)是由一臺 PC 機與數(shù)臺 PLC 之間形成 1∶ N的通信模式。該集散控制系統(tǒng)中, PLC與微型計算機之間的通訊顯得尤為 重要。 編程電纜將 PLC 的編程口和微型計算機的 RS232 口連接起來,將 PLC 用戶程序由微型計算機編程環(huán)境傳到 PLC 用戶程序區(qū),其編程口大多沒有被再利用。也就是說,可利 用此編程口實現(xiàn)微型計算機和 PLC 的數(shù)據(jù)通訊,將 PLC的工作狀態(tài)納入微型計算機管理之下 , 用可視化編程語言實現(xiàn) PC 機與 PLC 網(wǎng)絡(luò)之間數(shù)據(jù)通訊的技術(shù) [9]。也有人根據(jù) Modem 的諧音,將其稱之為 “貓 ”。當兩臺計算機要通過電話線進行數(shù)據(jù)傳輸時,就需要一個設(shè)備負責(zé)數(shù)模的轉(zhuǎn)換。而計算機和 Modem之間通過串口線或網(wǎng)線進行連接,串口設(shè)備起到了數(shù)字信號和電氣信號之間轉(zhuǎn)換器的作用。經(jīng)過調(diào)制的信號通過電話載波傳送到另一臺計算機之前,也要經(jīng)由接收方的 Modem負責(zé)把模擬信號還原為計算機能識別的數(shù)字信號,這個過程我們稱 “解調(diào) ”。 Modem(調(diào)制解調(diào)器)由發(fā)送、接收、控制、接口、操縱面板及電源等部 分組成。 Modem接收部分接收來自線路的信號,經(jīng)濾波、反調(diào)制、電平轉(zhuǎn)換后還原成數(shù)字信號送入數(shù)字終端設(shè)備 [13]。數(shù)據(jù)終端設(shè)備,即通信系統(tǒng)中的終端,如我們使用的計算機,它是數(shù)據(jù)的 23 源頭或目的地;通信線路,是數(shù)據(jù)通信設(shè)備之間的通信電纜設(shè)備;數(shù)據(jù)通信設(shè)備, Modem 及其連接電纜等就是數(shù)據(jù)通信設(shè) 備這部分。 利用 VC++開發(fā)串口通信程序的方法和特點 在 Windows 環(huán)境下,利用 Visual C++ 實現(xiàn)串行通信主要有兩種編程方法: ( 1) 使用 Windows Visual C++ MSComm 控件; ( 2) 調(diào)用 Windows 的 API函數(shù)。而且這種方法經(jīng)常發(fā)生數(shù)據(jù)丟失的情況,不能滿足實時系統(tǒng)的需求。 Windows 的 32 位 API 主要是一系列很復(fù)雜的函數(shù)、消息的集合,它可以看作是 Windows系統(tǒng)為在其下運行的各種開發(fā)系統(tǒng)提供的開放式通用功能增強接口。所以,在本次畢業(yè)設(shè)計中通過調(diào)用 API函數(shù)來實現(xiàn)串行通 信 [15]。 它 在串口編程時非常方便, 它 實際上是調(diào)用了 API 函數(shù),但程序員不必再了解復(fù)雜的 API 函數(shù)就可控制串行通信。 在 PC 串行端口通信時,使用了十幾條線進行信號傳輸。 DTR 線:用于傳輸 PC 發(fā)往串口 MODEM 等設(shè)備的信號,該信號表示 PC 是否已經(jīng)準備好。 DSR 線:用于傳輸串口 MODEM 等設(shè)備發(fā)往 PC的信號,該信號表示 MODEM 等設(shè)備是否已經(jīng)做好操作準備。 CD 線:用于傳輸串口 MODEM 等設(shè)備發(fā)往 PC 的信號,該信號表示 MODEM 已經(jīng)和遠方的設(shè)備建立了聯(lián)系。通過對屬性的操作,就可以完成串行口的查詢、設(shè)置及通信 [11]。 語法: [value ] (value 一整型值,說明端口號。但是如果用 PortOpen屬性打開一個并不存在的端口時, MSComm控件會產(chǎn)生錯誤 68(設(shè)備無效)。 2RThreshold 屬性:在 MSComm 控件設(shè)置 CommEvent 屬性為 EvReceive 并產(chǎn)生 OnComm 之前,設(shè)置并返回的要接 收的字符數(shù)。) 說明: 當接收字符后,若 Threshold 屬性設(shè)置為 0(缺省值)則不產(chǎn)生 Non 事件。 3CTSHolding屬性:確定是否可通過查詢 Clear To Send (CTS) 線的狀態(tài)發(fā)送數(shù)據(jù)。該屬性在設(shè)計時無效,在運行時為只讀。 False Clear To Send 線為低電平。 Clear To Send 線用于 RTS/CTS (Request To Send/Clear To Send) 硬件握手。 4SThreshold 屬性: MSComm 控件設(shè)置 CommEvent 屬性為 EvSend 并產(chǎn)生OnComm 事件之前,設(shè)置并返回傳輸緩沖區(qū)中允許的最小字符數(shù)。說明:若設(shè)置 Sthreshold 屬性為 0(缺省值),數(shù)據(jù)傳輸事件不會產(chǎn)生 OnComm 事件。如果在傳輸緩沖區(qū)中的字符數(shù)小于 value, CommEvent 屬性設(shè)置為 EvSend,并產(chǎn)生 OnComm 事件。例如,如果 Sthreshold 等于 5,僅當在輸出隊列中字符數(shù)從 5 降到 4時, EvSend 才發(fā)生。5Handshake 常數(shù)如表 31 所示。 表 32 OnComm 常數(shù) 常數(shù) 值 描述 EvSend 1 發(fā)送事件 EvReceive 2 接收事件 EvCTS 3 cleartosend 線變化 26 EvDSR 4 dataset ready 線變化 EvCD 5 carrier detect 線變化 EvRing 6 振鈴檢測 EvEOF 7 文件結(jié)束 7Error 常數(shù)如表 33 所示。 表 34 InputMode 常數(shù) 常數(shù) 值 描述 InputModeText 0 (缺?。┩ㄟ^ Input 屬性以文本方式取回數(shù) 據(jù) InputModeBinary 1 通過 Input 屬性以二進制方式檢取回數(shù)據(jù) 9CDHolding
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1