乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      串口編程之前奏篇

       orion360doc 2011-01-30
      串口編程之前奏篇
      ------------------------------------------------------------------------
      Author   :tiger-john
      WebSite  :blog.csdn.net/tigerjb
      Email    :jibo.tiger@gmail.com
      Tiger聲明:本人鄙視直接復制本人文章而不加出處的個人或團體,但不排斥別人轉(zhuǎn)載tiger-john的文章,只是請您注明出處并和本人聯(lián)系或留言給我。3Q
      --------------------------------------------------------------------------
      眾所周知嵌入式系統(tǒng)之間采用通信方式交換數(shù)據(jù),由于各類CPU均集成了UART部件。所以串行通信是一種最基本的通信手段。因此,我們也對它進行深入的了解
      本文章針對串口編程時如何設(shè)計串口通信協(xié)議,以及對RS232接口進行了說明。為下一步進行串口編程進行熱身
       
      1.    通信協(xié)議設(shè)計
      在進行通信時,每次需要傳送的信息一般超過1字節(jié)。為此,通信雙方必須約定通信數(shù)據(jù)的排列格式,即通信協(xié)議。通常把一次通信過程的全部內(nèi)容稱為一個“通信幀”。通信協(xié)議設(shè)計就是幀結(jié)構(gòu)設(shè)計。
      在一幀內(nèi)容中,通常包括以下部分。
      1>  起始碼:由一個或若干個包含特定內(nèi)容的字節(jié),表示一個通信幀的開始。起始碼的內(nèi)容必須與通信數(shù)據(jù)內(nèi)容有明顯區(qū)別(不能在通信數(shù)據(jù)里出現(xiàn)與起始碼相同的內(nèi)容)
      注:
      當通信幀的總長度比較短,信道質(zhì)量比較高時,為了提高效率,可以不設(shè)置起始碼。
      2>  地址碼:在主從結(jié)構(gòu)的多機組網(wǎng)通信系統(tǒng)中,用來指明分機號。
      l  當分機總數(shù)在255臺之內(nèi)時,地址碼為1字節(jié)。可以定義一個特殊的地址碼作為廣播地址,代表所有的分機。
      l  在多主多從(無主從)結(jié)構(gòu)的多機組網(wǎng)通信系統(tǒng)中,地址碼包含收發(fā)雙方的地址。
      注:
      如果是兩臺設(shè)備之間進行點對點的通信,幀結(jié)構(gòu)中就步需要包含地址碼。
      3>  長度碼:在數(shù)據(jù)長度不固定的通信場合(變長幀),表示本幀數(shù)據(jù)內(nèi)容的字節(jié)數(shù)。當長度肯定不超過255字節(jié)時,長度碼用1字節(jié)表示。
      注:
      如果每次通信數(shù)據(jù)內(nèi)容的長度為雙方約定的固定值(定長幀),幀結(jié)構(gòu)中就不需要包含長度碼。
      4>  數(shù)據(jù)段:通信的實質(zhì)內(nèi)容。
      5>  校驗碼:由于通信信道存在干擾,為了判斷接收的內(nèi)容是否受到干擾,需要加入效驗碼。
      效驗碼算法可以采用
      l  簡單的異或校驗碼。
      l  也可以像HEX文件那樣采用算術(shù)加法校驗。
      l  采用功能極強的CRC校驗。
      注:當通信環(huán)境非常好時(如室內(nèi)設(shè)備之間的通信),幀結(jié)構(gòu)中就不需要包含校驗碼。
      2.    RS232標準
      1>  簡介:
      l  RS232接口是1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家共同制定的用于串行通訊的標準。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進制數(shù)據(jù)交換接口技術(shù)標準”。
      l   該標準規(guī)定采用一個25個腳的DB25連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。隨著設(shè)備的不斷改進,出現(xiàn)了代替DB25的DB9接口,現(xiàn)在都把RS232接口叫做DB9
      注:我們后面所用的都是RS232的DB9接口
      2>  接口定義
      先看圖:
       
       
      (圖片來自百度)
      引腳1:DCD 載波檢測
      引腳2:RXD 接收數(shù)據(jù)
      引腳3:TXD 發(fā)送數(shù)據(jù)
      引腳4:DTR 數(shù)據(jù)終端準備好
      引腳5:SG 信號地
      引腳6:DSR 數(shù)據(jù)準備好
      引腳7:RTS 請求發(fā)送
      引腳8: CTS 清除發(fā)送
      引腳9: RI 振鈴提示
       
      Tiger-John說明:
       
      1在UART0串口編程中我們只用到了引腳2,引腳3,和引腳5.
      2.    目前的串口線有兩中連接方法:
      l  平行線:2接2,3接3(即發(fā)對發(fā),接對接)
      l  交叉線:2接3,3接2(即發(fā)對接,接對發(fā))
      各個外設(shè)所用的連接方法都不一樣。因此,調(diào)試程序時,一定要注意你所用的是那中串口線。如果串口線選錯的話,它們之間是不通信的
       

      UART0串口編程目錄:
      串口編程之前奏篇
      UART0串口編程系列(一)
      UART0串口編程系列(二)
      UART0串口編程系列(三)
      UART0串口編程系列(四)
      UART0串口編程系列(五)
       

       
       
      本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/tigerjb/archive/2011/01/19/6153810.aspx

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多