《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Linux PC和51系列單片機串行通信的設計
Linux PC和51系列單片機串行通信的設計
摘要: Linux是遵循GPL協議的免費源代碼開放軟件,任何人都可以自由的從Internet上取得其源程序,也可在GPL的協議下修改其源代碼以適應特定的應用,其運行在普通的PC上,性能穩定,特別適于做工業控制,因此實現Linux和單片機的串行通信非常有意義,他可以是昂貴的UNIX工作站的一種可選的替代方法。
Abstract:
Key words :

單片機性能穩定、價格低廉、功能強大,在智能儀器、工業裝備以及日用電子消費品中得到了越來越廣泛的應用。在單片機的輸入輸出控制中,除直接接上小鍵盤和 LCD顯示屏等方法外,一般都通過串口和上位機PC進行通信,而后一種方法由于能實現遠程控制,并且能夠利用PC機強大的數據處理功能以及友好的控制界面,顯得尤為重要。在一般的利用PC機對單片機進行控制的場合,都是采用Windows作為上位機的平臺,其優點是界面友好,編程和操作都比較容易,缺點是穩定性太差,這對于需要連續數天或數月運行的裝置來說,尤其不合適。在要求比較苛刻的場合,一般都采用UNIX工作站作為主控平臺,如合肥同步輻射加速器的主控平臺采用的是SUN的Solaris工作站系統,然而UNIX工作站昂貴的價格又大大限制了其使用的范圍。近年來,隨著Linux的迅猛發展,使其逐漸從少數人的玩具變成了主流的操作系統。Linux是遵循GPL協議的免費源代碼開放軟件,任何人都可以自由的從Internet上取得其源程序,也可在GPL的協議下修改其源代碼以適應特定的應用,其運行在普通的PC上,性能穩定,特別適于做工業控制,因此實現Linux和單片機的串行通信非常有意義,他可以是昂貴的UNIX工作站的一種可選的替代方法。

1 硬件原理

目前國內使用較多的為MCS-51系列的單片機,因此選用的單片機實驗對象為一片AT89C51,圖1是硬件原理圖,由于要實現符合RS232C的串行通信,還應該用一片ICL232CPE(MAX232)作為串行通信的電平轉換電路。在實驗過程中,為了查看通信是否成功,除了讓單片機對上位機回送數據外,還在單片機外圍擴展了幾片鎖存器,幾個LED發光二極管和幾個小鍵盤。串行通信是采用最簡單的TxD,RxD,GND三線制連接,注意TxD和RxD 兩邊應該交叉連線。

40.gif

上位機是一臺普通的PC機,共有2個串行口COM1,COM2,其運行RedHat8.0,實際上,如果不要求運行Gnome或KDE等圖形界面,Linux對系統硬件的要求相當低。

實驗證明,此電路簡單可靠,非常適用于測試串行通信。

2 串行通信程序設計

串行通信程序包括下位機單片機和上位機PC機的程序。單片機接收上位機傳來的數據,放到片內RAM里面,再將RAM內數據同時發送到外部擴展鎖存器和上位機,由此可以判斷通信是否成功。此程序由匯編語言寫成,初始化時波特率設置為4 800 b/s,通信方式為8-N-1。

上位機程序的編寫是關鍵部分,因為要對串口硬件設備進行操作,有2種方法,一是利用Linux內核自帶的串口驅動程序,另外一種方法就是直接讀寫串口硬件端口,下面分別介紹。

2.1 利用串口驅動程序的編程方法

利用Linux自身的串口驅動程序進行編程,實際上就是調用驅動程序的一系列函數,完成串口通信參數的設置,數據的發送和接收。在這種方法中,Linux給每個串口都分配一個文件索引號,有相應的文件名稱,實際上是將硬件設備看成一種特殊的文件,如COM1,COM2對應的文件分別為/dev/ttyS0,/dev/ttyS1,操作這2個串口實際上就是操作這2個文件,而對硬件設備文件的操作與對普通文件的操作并沒有什么不同,都可以使用相同的文件I/O調用函數(open,write,read,close),不同之處在于用系統調用 open()打開串口得到相應設備的文件描述符以后,先要對其進行初始化,設置一些特定的參數,如波特率、數據位、輸入輸出方式等,這些參數存放在 structtermios中,函數tcsetattr()可以設置串口的structtermios,tcgetattr()可以得到串口的 struct termios。設置完通信參數后就可用read和write對串口文件進行讀寫了。運行程序時要注意用戶是否有對要操作的串口文件進行讀寫的權力,可以用chmod命令進行文件權限修改。

初始化函數如下:

41.gif
42.gif

初始化以后就開始發送和接收數據,先將一個字符串發送給單片機,單片機接收到數據后,將數據返回給上位機。但需要注意的是,由于上位機速度比單片機快得多,一次不能發送過多的數據,否則極有可能使發送緩沖區溢出而丟失數據,發送過后,還需等待一段時間,使單片機將數據完全發送到上位機后,再進行讀取。

2.2 直接讀寫串口硬件端口的方法

在使用這個方法的時候,必須對串口通信的硬件原理有一些了解。PC機的串口是由通用異步收發器8250UART(或16550)為核心構成的,寄存器基地址分別是0x3f8(COM1)和0x2f8(COM2),還有其他的一些用于控制的寄存器。有很多寄存器是與Modem相關的,而在使用三線制進行通信時用不到,只用關心與通信相關的寄存器,比起使用為通用功能編寫的串口設備驅動程序來,直接讀寫相關寄存器效率更高。

 43.gif

初始化后,就可以進行數據的收發了,接受數據之前必須保證接收數據就緒,這可以通過0x2fd的D0來判斷,發送數據之前必須保證發送寄存器為空,這可以通過0x2fd的D5來判斷,代碼如下:

 44.gif

3 結語

實驗表明,此系統采用的2種方法都完全實現了LinuxPC機與單片機之間點對點的通信,方法簡單可靠,基本上在需要用到PC機與單片機串行通信的場合均可采用此種方法。隨著近年來Linux在國內應用范圍的日益壯大,在工業控制、數據采集等領域也必將越來越多的采用Linux,本文可以算作是一個有益的嘗試。當然在實際應用中還需要考慮一些問題,比如進行出錯處理的問題,可以在一個要發送的字符串后再發送一個校驗和,當收到返回的校驗和與發送的校驗和不一致時再進行重發,再比如所采用的RS232C傳輸距離很短,并且抗干擾能力很差,這時需要將總線轉換成差分傳輸的RS485/RS422。另外,稍加改進,就可實現PC機與多片51單片機的串行通信,這時由于共用一條總線,必須給每個單片機分配一個地址,然后由PC機對總線進行仲裁,只有獲得總線使用權的單片機才能與上位機進行通信,這里不再贅述。

總之,本文只是為Linux PC和單片機串行通信提供了一個典型的范例,要應用到實際的項目中去,還需要根據實際的情況具體考慮,靈活應用,最終才能形成一個可靠的基于Linux平臺的系統。

參考文獻
  [1] PhiCornes.Linux從入門到精通[M].童壽彬譯.北京:電子工業出版社,1998.
 ?。?]Peter Baumann H . Linux Serial - programming - HOWTO中文版[M].曾元佑譯.
  [3]萬福君,潘松峰.單片微機原理系統設計與應用[M].合肥:中國科學技術大學出版社,2001.
 ?。?][美]安格斯生.串行端口大全[M].精英科技譯.北京:中國電力出版社,2001.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美成人精品| 久久一区二区精品| 亚洲日韩欧美一区二区在线| 免费欧美高清视频| 国产欧美日韩麻豆91| 亚洲黄色免费网站| 久久国产高清| 性色av一区二区三区在线观看| 欧美二区视频| 欧美激情1区| 中文亚洲免费| 欧美日韩国产一中文字不卡| 亚洲视频在线一区| 欧美凹凸一区二区三区视频| 欧美系列一区| 欧美日韩1080p| 久久久夜精品| 亚洲另类在线视频| 在线成人亚洲| 欧美日韩亚洲高清| 久久噜噜亚洲综合| 亚洲第一色中文字幕| 国产精品福利在线| 久久亚洲综合| 欧美色欧美亚洲高清在线视频| 国产精品高清一区二区三区| 亚洲永久精品国产| 欧美日韩一区二区免费在线观看| 国产综合亚洲精品一区二| 亚洲美女精品久久| 欧美啪啪成人vr| 国产精品一区二区男女羞羞无遮挡| 欧美一区午夜视频在线观看| 一区二区三区高清在线| 另类av导航| 欧美精品亚洲一区二区在线播放| 欧美亚洲在线播放| 在线亚洲+欧美+日本专区| 欧美在线观看视频一区二区三区| 国产欧美日本在线| 99国产精品99久久久久久粉嫩| 日韩一二三在线视频播| 国产一区二区三区不卡在线观看| 久久免费视频在线观看| 亚洲人体大胆视频| 香蕉久久久久久久av网站| 激情成人综合| 亚洲精品网址在线观看| 久久亚洲国产精品日日av夜夜| 久久精品日韩欧美| 欧美激情一区二区三级高清视频| 91久久亚洲| 国产视频一区欧美| 欧美日韩国产丝袜另类| 狠狠色丁香久久婷婷综合_中| 精品电影一区| 久久精品夜夜夜夜久久| 99pao成人国产永久免费视频| 国产资源精品在线观看| 国产一区二区精品久久91| 麻豆视频一区二区| 在线观看国产欧美| 欧美成在线视频| 欧美国产在线视频| 欧美日韩精品一区视频| 91久久国产综合久久蜜月精品| 久久久久久国产精品mv| 午夜激情久久久| 欧美日韩一区二区三区在线观看免| 亚洲一卡二卡三卡四卡五卡| 欧美在线欧美在线| 国产在线播放一区二区三区| 欧美在线首页| 影视先锋久久| 欧美在线啊v| 六月婷婷一区| 欧美在线综合| 激情综合在线| 欧美日本成人| 国产欧美视频在线观看| 亚洲高清在线精品| 欧美理论视频| 美女在线一区二区| 狠狠色丁香婷婷综合影院| 黑人巨大精品欧美黑白配亚洲| 午夜精品久久久久久久久久久| 欧美伊人久久大香线蕉综合69| 亚洲国产女人aaa毛片在线| 欧美午夜精品久久久久久久| 亚洲一本视频| 久久久久成人精品免费播放动漫| 一区二区自拍| 国产精品大片| 伊人精品成人久久综合软件| 国自产拍偷拍福利精品免费一| 欧美freesex交免费视频| 欧美午夜影院| 欧美午夜精品久久久久免费视| 亚洲第一福利视频| 久久精品视频一| 一区二区在线视频观看| 亚洲综合999| 亚洲国产美女久久久久| 久久精品国产一区二区三| 国产日产精品一区二区三区四区的观看方式| 精品69视频一区二区三区| 欧美激情第4页| 国产一区二区三区视频在线观看| 欧美综合二区| 免费在线一区二区| 亚洲日本视频| 精品成人一区| 久久香蕉国产线看观看av| 欧美视频一区二区在线观看| 精品88久久久久88久久久| 毛片基地黄久久久久久天堂| 伊甸园精品99久久久久久| 欧美日韩视频专区在线播放| 男人的天堂亚洲| 久久精品国产久精国产思思| 欧美三级在线视频| 欧美日韩一区二区三区四区五区| 亚洲国产裸拍裸体视频在线观看乱了| 久久久久久穴| 在线日韩欧美视频| 亚洲性图久久| 国产精品高潮呻吟| 亚洲日本乱码在线观看| 亚洲精品乱码视频| 国产精品v日韩精品v欧美精品网站| 日韩午夜在线视频| 欧美精品久久一区| 欧美一区国产在线| 欧美日韩在线大尺度| 欧美国产日韩a欧美在线观看| 久久夜色精品国产欧美乱极品| 久久男人av资源网站| 在线视频欧美精品| 国产在线欧美| 久久精品成人一区二区三区蜜臀| 一区二区三区视频在线播放| 国自产拍偷拍福利精品免费一| 欧美日韩国产成人高清视频| 亚洲欧美日韩国产一区二区三区| 午夜电影亚洲| 亚洲精品久久视频| 欧美一区深夜视频| 欧美一级视频精品观看| 国产日本精品| 亚洲欧洲av一区二区| 国产喷白浆一区二区三区| 亚洲国产精品一区二区www| 欧美一区二区| 亚洲一级免费视频| 国产精品久久久久久久第一福利| 亚洲国产三级网| 激情综合色综合久久综合| 亚洲午夜激情网页| 国产欧美欧洲在线观看| 国产一本一道久久香蕉| 国产精品日韩一区二区| 国产在线麻豆精品观看| 欧美视频一区在线观看| 欧美特黄一级大片| 亚洲国产精品一区二区久| 国产精品人人做人人爽| 国产一区二区按摩在线观看| 欧美一区二区三区在线观看视频| 一区二区成人精品| 欧美777四色影视在线| 国产麻豆视频精品| 国产在线高清精品| 91久久精品国产91性色tv| 久久久久久久久一区二区| 在线观看国产日韩| 欧美+亚洲+精品+三区| 亚洲人成绝费网站色www| 欧美一区二区女人| 国产日韩欧美另类| 亚洲成色www久久网站| 欧美激情黄色片| 国产亚洲一区在线播放| 欧美自拍偷拍| 国产性猛交xxxx免费看久久| 亚洲毛片在线观看.| 亚洲国产精品电影| 亚洲欧美日韩区| 亚洲国产精品久久久久秋霞不卡| 欧美三级网址| 农夫在线精品视频免费观看| 国产精品久久久久久久午夜| 亚洲免费电影在线| 免费成人av资源网| 久久国产日本精品| 韩国av一区二区三区| 国产精品狼人久久影院观看方式| 亚洲自拍偷拍福利| 欧美日韩久久精品| 国产农村妇女毛片精品久久莱园子| 欧美激情欧美狂野欧美精品| 欧美午夜精品理论片a级大开眼界| 亚洲电影自拍| 欧美高清视频一二三区| 亚洲综合大片69999| 欧美插天视频在线播放| 国内精品视频一区| 国产欧美日韩伦理| 欧美日韩在线播放三区四区| 欧美日韩国产专区| 精久久久久久久久久久| 老司机免费视频久久| 亚洲综合视频1区| 亚洲成色777777在线观看影院| 国产欧美不卡| 亚洲韩国一区二区三区| 国产一区二区三区久久精品| 欧美一区二区三区婷婷月色| 激情欧美一区二区三区在线观看| 国产精品www| 一区二区三区在线视频观看| 亚洲精品乱码视频| 欧美精品成人91久久久久久久| 欧美久久久久久久久| 亚洲欧美日韩第一区| 久久人人97超碰人人澡爱香蕉| 妖精成人www高清在线观看| 午夜日韩在线观看| 欧美色视频日本高清在线观看| 欧美大香线蕉线伊人久久国产精品| 欧美国产高清| 亚洲自拍三区| 免费在线观看成人av| 国产女主播一区二区三区| 久久久久久97三级| 快射av在线播放一区| 亚洲欧美一区二区激情| 欧美激情在线播放| 欧美一区永久视频免费观看| 久久狠狠婷婷| 久久精品噜噜噜成人av农村| 亚洲国产日韩美| 国产一区二区三区久久| 欧美日本国产一区| 欧美午夜寂寞影院| 国内自拍一区| 激情另类综合| 亚洲淫性视频| 在线日韩电影| 亚洲综合999| 99re8这里有精品热视频免费| 欧美一区二区精美| 免费观看亚洲视频大全| 欧美精品97| 亚洲国产一区二区a毛片| 国产亚洲精品成人av久久ww| 亚洲国产精品成人va在线观看| 亚洲国产精品小视频| 国产欧美日韩视频一区二区三区| 亚洲一区二区黄| 久久精品国产亚洲一区二区三区| 国产精品手机在线| 欧美视频日韩视频| 久久久精品一品道一区| 一本色道久久综合亚洲二区三区| 久久激情久久| 亚洲二区三区四区| 日韩一区二区高清| 国产精品扒开腿做爽爽爽视频| 久久久999国产| 国产精品草莓在线免费观看| 久久天天躁狠狠躁夜夜av| 在线日韩视频| 国产精品另类一区| 欧美日韩国产美| 欧美日韩成人在线视频| 亚洲欧美日韩直播| 精品成人免费| 国产三级欧美三级日产三级99| 国产精品永久免费在线| 亚洲欧美综合v| 欧美精品久久久久久久| 麻豆精品网站| 黄网动漫久久久| 亚洲天堂av综合网| 99国产精品国产精品久久| 亚洲另类视频| 伊伊综合在线| 久久av在线| 国产在线乱码一区二区三区| 这里只有精品视频| 欧美中文字幕在线视频| 国产欧美日韩综合一区在线播放| 久久久91精品| 日韩视频精品在线观看| 一本一本久久a久久精品综合麻豆| 欧美国产一区在线| 农村妇女精品| 欧美日韩免费观看一区=区三区| 国产精品99久久久久久白浆小说| 国产在线一区二区三区四区| 欧美日韩伦理在线| 亚洲综合国产精品| 欧美体内谢she精2性欧美| 老司机午夜精品视频| 亚洲网友自拍| 日韩视频在线观看免费| 国产视频亚洲| 狠狠色综合色综合网络| 国产精品a久久久久久| 在线视频观看日韩| 欧美日韩三级一区二区| 亚洲一区二区三区精品视频| 最新国产拍偷乱拍精品| 欧美黄色一区二区| 一区在线视频| 欧美日韩一二三区| 欧美在线看片| 欧美专区一区二区三区| 久久久久久夜精品精品免费| 国产精品专区h在线观看| 欧美激情二区三区| 欧美人与禽猛交乱配视频| 永久91嫩草亚洲精品人人| 亚洲一级免费视频| 国产午夜精品久久久久久免费视| 激情综合网激情| 欧美激情va永久在线播放| 亚洲女女女同性video|