999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab和AVR單片機的串行數據通信設計

2012-04-29 19:03:09伊磊聶歡歡劉任平
計算機時代 2012年3期

伊磊 聶歡歡 劉任平

摘要:介紹了基于Matlab和AVR單片機通過PC機進行通信的方法。通過Matlab下的通信類Serial類元件庫實現串行通信,并利用AVR單片機對采集到的數據進行相應處理。

關鍵詞: 串行通信; Serial類對象; AVR單片機; Matlab串行通信

中圖分類號:TP919文獻標志碼:A 文章編號:1006-8228(2012)03-33-02

Serial communication based on Matlab and AVR

Yi Lei, Nie Huanhuan, Liu Renping

(North China University of Technology, Beijing, 100144, China)

Abstract: The authors present in this paper an approach for serial communication based on Matlab and AVR through PC and explain how to achieve the serial communication based on the component library of Matlab and act respectively according to the data which the MCU collects.

Key words: serial communication; serial class object; MCU of AVR; serial communication of Matlab

0 引言

Matlab是MathWorks公司開發的一種科學計算軟件。Matlab運行穩定、可靠、使用方便,是廣大科研人員進行科學研究的得力助手。Matlab不僅具有強大的科學計算功能,還具有滿足一般要求的數據采集以及界面設計開發等功能[1]。

串行通信是指使用一條數據線,將數據一位一位地依次傳輸,每一位數據占據一個固定的時間長度的通信方法。它只需要少數幾條線就可以在系統間交換信息,特別適用于計算機與計算機、計算機與外設之間的遠距離通信。

目前常用的串行通訊協議有RS-232、RS-422和RS-485等。

從Matlab 6.0版本開始,軟件中增加了設備控制箱(Instrument Control Toolbox)功能,提供了對RS-232/RS-485通信標準的串口通信的正式支持。利用該工具箱的serial類及fopen、fread等函數,能可靠地進行實時串行通信。根據Matlab的設備控制箱功能,Matlab產生的數據,例如圖像數據、音頻數據等,通過串口輸出作為傳輸的數據源,并可通過控制電路由AVR單片機實現。這種方法將Matlab的數據運算與單片機的數據處理有機結合起來,具有一定的實際意義[2]。

1 Matlab的串口通信原理

對于系統的串口,在Matlab中以serial類的形式提供了支持。當用指令建立一個串口對象(句柄)后,對串口的硬件操作可以以文件操作的軟件方式來完成,該方法比較簡單。

Matlab提供了對串口進行打開、關閉、以及串口參數設置等操作的一系列函數。利用這些函數可以選擇串口號、設置串口通信參數,例如波特率、數據位、停止位、校驗位等。

Matlab對串口的控制主要通過以下幾個步驟[3]。

⑴ 為應用程序創建串口對象,需要用到的函數為

s=serial(‘COM1):創建COM1串口對象,并以s標識。其中串口的屬性使用系統默認值。

⑵ 創建串口COM1后,打開串口需要用到的函數為

fopen(s):打開COM1串口。

⑶ 設置串口的屬性參數,需要用到的函數為

props=set(s,‘PropertyName,PropertyValue,…):設置正確的串口通信參數。

通過定義串口對象的屬性, 就能定義串口的通信模式,也可以了解串口的狀態。串口對象幾個比較重要的屬性如下。

BaudRate:定義傳輸波特率,常用的波特率有1200、2400、4800、9600、19200、115200等,缺省值為9600;

DataBits:定義數據幀的比特位數;

Parity:定義校驗方式;

StopBits:定義數據停止位。

⑷ 從串口讀數據或者向串口寫數據,也就是接收或者發送數據。需要用到的函數和參數有以下[4]。

fread(s):以二進制通信方式讀取串口數據。

fwrite(s):以二進制通信方式向串口寫數據。

fprintf(s, ‘ ID):以文本通信方式向串口輸出字符串‘ID,寫操作以同步方式進行。

id=fscanf(s):以文本通信方式向串口讀入字符串‘ID,并且保存在變量id中。

⑸ 關閉串口并且釋放串口對象占用的存儲空間。需要用到的函數有以下。

fclose(s):關閉串口。

delete(s):釋放串口對象占用的內存空間。

clear s:釋放串口對象在Matlab工作區中占用的存儲空間。

用Matlab實現對串口的讀寫操作,單片機可以通過串口接收Matlab傳來的數據,并且對數據作出處理。

2 AVR對串口數據進行處理

以下實驗是通過Matlab對串口寫數據后,單片機對傳到串口的數據進行處理的過程。整個系統的結構圖如圖1所示。

[PC機

模塊][MAX232A

電平轉換][AVR

單片機

模塊]

圖1系統結構圖

2.1 基于Matlab的上位機通訊

用Matlab以查詢方式的進行異步串行通信的主要代碼為:

s=serial(‘COM1);%創建COM1串口對象,并以s標示

s.baudrate=9600;%波特率為9600

s.stopbits=1;%設置停止位

fopen(s);%打開COM1串口

fwrite ( s , ‘16, ‘uchar);%向s寫十進制數16

fclose (s);%斷開串口COM1與s的相連

delete (s);%從內存中刪除串口對象s

clear s;%從Matlab工作區中清除串行接口對象s

2.2 基于AVR單片機的下位機通訊

單片機系統處于下位機狀態,等待Matlab 傳來的命令。當串口接收到數據后,按照協議對數據進行分析(這里使用的是AVR單片機中的mega8系列)。對串行數據進行處理的軟件處理流程圖如圖2所示[5]。

本設計來源于機器人語音識別項目。利用PC機識別語音信號后,讓機器人將做出相應的動作。

實現過程為:Matlab做出語音識別后輸出一個值,單片機根據這個值所對應的數據,來寫端口值進而驅動電機,電機的轉動帶動機器人四肢的轉動,從而實現目標。

[開始][串行口初始化

設置相關寄存器] [接受緩存為空?][接收PC機

發送信號] [是否為握手信號

0XFFH?][開始通信][單片機處理過程][結束][Y][N] [N][Y]

圖2AVR單片機下位機流程圖

3 結束語

本文所采用的串行通信方式為查詢方式,因此系統的實時性不是很好。在實際運用中,可以選擇Matlab所提供的instrcallback(s)回調函數以實現良好的實時性。另外本文所述單片機驅動的是電機,有興趣的讀者可以驅動其他外設。

參考文獻:

[1] 王戰軍,沈明.基于Matlab GUI的串口通信編程實現[J].現代電子技術,2010.9:39~44

[2] 李俊華.基于Matlab的紅外串行通信研究[J].現代電子技術,2011.3:59~65

[3] 張立材.基于Matlab環境的串行數據通信[J].微計算機信息,2004.3:100~101

[4] 孫希延,紀元法,施滸立.基于MATLAB的串口GPS數據通信處理系統設計[J].儀器儀表用戶,2006.6:64~65

[5] 向先波,徐國華,張琴.Matlab環境下PC機與單片機的串行通信及數據處理[J].單片機與嵌入式系統應用,2004.12:27~31

主站蜘蛛池模板: 亚洲综合第一页| 亚洲日韩国产精品综合在线观看| 亚洲精品老司机| 99热线精品大全在线观看| 无码专区国产精品第一页| 亚洲第一页在线观看| 日韩精品一区二区三区大桥未久| 露脸真实国语乱在线观看| 亚洲无线视频| 亚洲人成成无码网WWW| 久久天天躁狠狠躁夜夜2020一| 99久久精品无码专区免费| 老司机午夜精品网站在线观看| 免费人成视频在线观看网站| 人妖无码第一页| 毛片视频网址| 丁香亚洲综合五月天婷婷| 真实国产乱子伦视频| 五月六月伊人狠狠丁香网| 日本久久免费| 亚洲欧美成人综合| 国产网站在线看| 欧美一级高清免费a| 国产白浆在线观看| 精品无码一区二区三区电影| 亚洲国模精品一区| 亚洲天堂网在线观看视频| 青青操视频免费观看| 亚洲综合狠狠| 国产va欧美va在线观看| 丰满的少妇人妻无码区| 天天做天天爱夜夜爽毛片毛片| 亚洲无码高清视频在线观看 | 免费国产黄线在线观看| 欧美黑人欧美精品刺激| 国产又大又粗又猛又爽的视频| 精品国产99久久| 亚洲国产成人无码AV在线影院L| 伊人激情综合网| 久久无码av一区二区三区| 亚洲一区无码在线| 97se亚洲综合| www.日韩三级| 国产精品专区第1页| 婷婷亚洲最大| 欧美日韩激情在线| 色呦呦手机在线精品| 国产精品太粉嫩高中在线观看| 免费国产高清视频| 精品無碼一區在線觀看 | 久久中文电影| 毛片免费在线视频| 91福利国产成人精品导航| 国产成人一区免费观看| 精品人妻无码区在线视频| 国产精品任我爽爆在线播放6080| 免费在线a视频| 欧美国产菊爆免费观看 | 国产xxxxx免费视频| 99在线视频免费观看| 国产成+人+综合+亚洲欧美| 色窝窝免费一区二区三区 | 成人免费一区二区三区| 99久久精品免费观看国产| 成人在线观看不卡| 国产精品私拍99pans大尺度| 99久久精品国产精品亚洲| 免费jizz在线播放| 国产成人91精品| 国产精品三级av及在线观看| a毛片在线播放| 国产一级毛片网站| 香蕉视频在线精品| www.亚洲一区二区三区| 国产拍在线| 亚洲综合经典在线一区二区| 国产精品成人观看视频国产| 久久精品日日躁夜夜躁欧美| 一本大道视频精品人妻| 国产精品所毛片视频| 欧美69视频在线| 久久精品只有这里有|