最简单的互动设计–arduino一试就上手孙骏荣、吴明展、卢聪勇

上传人:小** 文档编号:55021612 上传时间:2018-09-23 格式:PPT 页数:31 大小:1.84MB
返回 下载 相关 举报
最简单的互动设计–arduino一试就上手孙骏荣、吴明展、卢聪勇_第1页
第1页 / 共31页
最简单的互动设计–arduino一试就上手孙骏荣、吴明展、卢聪勇_第2页
第2页 / 共31页
最简单的互动设计–arduino一试就上手孙骏荣、吴明展、卢聪勇_第3页
第3页 / 共31页
最简单的互动设计–arduino一试就上手孙骏荣、吴明展、卢聪勇_第4页
第4页 / 共31页
最简单的互动设计–arduino一试就上手孙骏荣、吴明展、卢聪勇_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《最简单的互动设计–arduino一试就上手孙骏荣、吴明展、卢聪勇》由会员分享,可在线阅读,更多相关《最简单的互动设计–arduino一试就上手孙骏荣、吴明展、卢聪勇(31页珍藏版)》请在金锄头文库上搜索。

1、CH6 RS232串列埠通訊,最簡單的互動設計 Arduino一試就上手 孫駿榮、吳明展、盧聰勇,系統內部的感測設備以及控制模組、設備之間都需要資料的交換來達成某部分的功能,而這些資訊除了無線通訊外皆需要透過1條或多條線路將系統連結,經由線路的數位訊號0與1(也就是電壓改變)的組合排列,來代表不同的意義。 網路、並列埠、串列埠、USB等,這類型的介面協定會依據傳輸量的大小以及時代的演進,持續地改良、進步,每單位時間內能傳輸的資料量會逐漸擴增。,通訊,通訊埠一種是9隻接腳,另一種則是25隻接腳,分別就是串列埠和並列埠的接點位置。,電腦的通訊埠,串列傳輸又叫序列傳輸,將資料的每個位元經過一條線依序

2、的傳遞出去,而並列傳輸則是需要8條線(這邊假設資料為8個位元時),同時將資料的位元一次傳出。,串列埠,同步通訊(Synchronous communication) 非同步通訊(Universal Asynchronous Receiver/Transmitter,通常稱作UART) 同步通訊內的整個資料序列以連續的位元方式傳送,而以較高速的速率傳輸大資料區塊。 同步傳輸的單位是資料框,所以位元錯誤的機率會較大。,同步和非同步通訊,非同步通訊主要用於資料的不定期傳輸,通常用於字元產生的速度不確定或以較低的速度傳輸字元,為了確定能接收到字元,所以在每個字元前後會被開始位元及結束位元包住,以確定傳

3、輸的有效性,此方式錯誤率較低。 非同步通訊包含了RS232、RS499、RS423、RS422和RS485等介面標準規範和匯流排標準規範。,同步和非同步通訊,全雙工(Full-Duplex),例如電話 半雙工(Half-Duplex),例如無線電 全雙工:設備的收發資料是可以同時進行的。 半雙工:接收資料和傳送資料在同一時間只能選擇一樣來做。,全雙工和半雙工,RS-232通訊協定一開始是設計與數據機連結作傳輸,所與之連結的裝置可以略分為資料終端裝置(DTE, Data Terminal Equipment)和資料通訊裝置(DCE, Data Communication Equipment)兩種

4、。 以DB-9的9隻腳為主要的介面。 由於線路的損耗與雜訊干擾,傳輸距離的建議值約不超過十多公尺。,RS-232,RS-232,電腦來說RS232電壓的變化是正負15V,但對於單晶片的嵌入式系統而言,準位則是0-3V或0-5V,決定於單晶片的驅動電壓。 市面上也有專用於RS232電位轉換的IC,例如:HIN232、MAX232等。,RS-232準位,(資料來源:intersil公司HIN232說明手冊),RS-232接線範例,(資料來源:intersil公司HIN232說明手冊),由圖可以看到一共有紅、藍兩色分別表示一組TX、RX。也就是說一顆晶片上實際可以支援兩組的輸出、輸入訊號準位變化。橘

5、色的線則表示了訊號的方向。若系統需要RTS等其它的功能腳位,也可以利用這邊的準位轉換,不一定只能使用在資料上。,RS-232接線範例,Arduino的訊號轉換電路,Arduino的硬體時,在板子上有FT232這顆USB轉RS-232訊號IC,提供USB的介面供使用者在開發的時候方便連結電腦使用,這樣就不怕缺少COM。,RS-232介面轉換,RS-232通訊協定,起始位元(START BIT):表示之後的位元為資料,以上圖的例子起始位元為0(低電位)。 資料位元(DATA BIT):可以選擇資料大小為7或8個位元。 (奇偶)同位元檢查(PARITY BIT):是指包含在起始位元和停止位元中間的資

6、料必須要有偶數個或是奇數的1。 停止位元(STOP BIT):停止位元數有1個和2個兩種選擇。通常設定為1個。,RS-232通訊協定,資料傳輸速率常見為1200的倍數,從1200、2400、4800、9600、38400、57600、115200等,單位是bps (bits per second),請記得在傳送資料時,英文字和數字等標準ASCII碼的字元,1個字是1 byte (等於8bits),這樣的傳輸速率在現在來說是相當慢的,USB、1394等新一代的介面速度皆遠遠大於此,不過在一般的工業設備或是感測模組中,RS-232還是相當普遍常見的,像是全球定位系統GPS模組也是採用232協定。,

7、RS-232通訊協定,超級終端機only in XP,除了一般常見的傳送、接收資料顯示外,它還支援了監測電腦上某個串列埠的功能,可以隨時監看在這個COM內所有的資料進出,相當方便。,Access Port,RS-232逐漸改向RS-485的協定方式發展,主因為RS-232的訊號為單接點的方式,也就是單靠一條線路上的電壓變化,容易受到雜訊或距離的影響使資料內的位元判斷錯誤。而RS-485採用差動式,兩條接線皆有電壓變化透過同一時刻的訊號差異來表示資料,抗干擾的能力較強,速度與傳輸距離也可以大大提升。,RS-232 and RS-485,在Arduino中,標準程式下載的介面便是RS-232,透過

8、USB的接線經由Arduino上的轉換晶片後,與第0和1兩支數位PIN腳做連結,分別是RX與TX。,Arduino串列埠通訊,在開啟Arduino的開發環境後,可以在Tools內的Serial Port選擇目前連結的通訊埠。 如果你有兩塊以上不同的Arduino開發板,要注意每塊的通訊埠號碼都會不一樣,使用前必須先行確認過。,Arduino串列埠通訊,void setup() /初始化串列埠,鮑9600Serial.begin(9600); void loop() /想要輸出的字串Serial.println(“Hello RS-232“);delay(1000); /輸出慢一點 ,範例,設定

9、:Serial.begin(9600) 初始化串列埠,鮑率9600,範例,顯示: Serial.print(“Hello RS-232“); 每次換行,想要輸出的字串: Serial.println(“Hello RS-232“);,範例,Serial.println(testByte,BYTE);/以ASCII形式輸出 Serial.println(testByte,DEC);/以10進位形式輸出 Serial.println(testByte,HEX);/以16進位形式輸出 Serial.println(testByte,BIN); /以2進位形式輸出 Serial.println(tes

10、tByte,OCT);/以8進位形式輸出,輸出資料型態,輸出型態比較,c = Serial.read(); 讀取經由串列埠傳送來的資料,把輸入的字元存至c這個變數當中,輸入資料,在Arduino中,在等待一段時間都沒有資料輸入後,自動跳往下一行程式執行,我們的範例中,接著輸入後就是輸出至電腦的函式,也因為沒有收到資料的結果,輸出就變成了亂碼。但實際當我們有輸入時,這個範例還是可以將資料完整的回送到電腦做顯示。,輸入資料,在Arduino中提供了一個函式,負責判斷有無資料透過RS-232的腳位傳送進來: Serial.available(),輸入資料,void loop() char c;/判斷是否有資料輸入if(Serial.available() 0)/讀取電腦經由串列埠傳送的資料c = Serial.read(); /將收到的資料再回傳給電腦 Serial.println(c); delay(1000); /延遲1秒 ,輸入資料,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 宣传企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号