Arduino一試就上手課件_第1頁
Arduino一試就上手課件_第2頁
Arduino一試就上手課件_第3頁
Arduino一試就上手課件_第4頁
Arduino一試就上手課件_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、CH6 RS232串列埠通訊最簡(jiǎn)單的互動(dòng)設(shè)計(jì) Arduino一試就上手孫駿榮、吳明展、盧聰勇第1頁,共31頁。系統(tǒng)內(nèi)部的感測(cè)設(shè)備以及控制模組、設(shè)備之間都需要資料的交換來達(dá)成某部分的功能,而這些資訊除了無線通訊外皆需要透過1條或多條線路將系統(tǒng)連結(jié),經(jīng)由線路的數(shù)位訊號(hào)0與1(也就是電壓改變)的組合排列,來代表不同的意義。網(wǎng)路、並列埠、串列埠、USB等,這類型的介面協(xié)定會(huì)依據(jù)傳輸量的大小以及時(shí)代的演進(jìn),持續(xù)地改良、進(jìn)步,每單位時(shí)間內(nèi)能傳輸?shù)馁Y料量會(huì)逐漸擴(kuò)增。通訊第2頁,共31頁。通訊埠一種是9隻接腳,另一種則是25隻接腳,分別就是串列埠和並列埠的接點(diǎn)位置。電腦的通訊埠第3頁,共31頁。串列傳輸又叫序

2、列傳輸,將資料的每個(gè)位元經(jīng)過一條線依序的傳遞出去,而並列傳輸則是需要8條線(這邊假設(shè)資料為8個(gè)位元時(shí)),同時(shí)將資料的位元一次傳出。串列埠第4頁,共31頁。同步通訊(Synchronous communication)非同步通訊(Universal Asynchronous Receiver/Transmitter,通常稱作UART)同步通訊內(nèi)的整個(gè)資料序列以連續(xù)的位元方式傳送,而以較高速的速率傳輸大資料區(qū)塊。同步傳輸?shù)膯挝皇琴Y料框,所以位元錯(cuò)誤的機(jī)率會(huì)較大。同步和非同步通訊第5頁,共31頁。非同步通訊主要用於資料的不定期傳輸,通常用於字元產(chǎn)生的速度不確定或以較低的速度傳輸字元,為了確定能接收到

3、字元,所以在每個(gè)字元前後會(huì)被開始位元及結(jié)束位元包住,以確定傳輸?shù)挠行?,此方式錯(cuò)誤率較低。非同步通訊包含了RS232、RS499、RS423、RS422和RS485等介面標(biāo)準(zhǔn)規(guī)範(fàn)和匯流排標(biāo)準(zhǔn)規(guī)範(fàn)。同步和非同步通訊第6頁,共31頁。全雙工(Full-Duplex),例如電話半雙工(Half-Duplex),例如無線電全雙工:設(shè)備的收發(fā)資料是可以同時(shí)進(jìn)行的。半雙工:接收資料和傳送資料在同一時(shí)間只能選擇一樣來做。全雙工和半雙工第7頁,共31頁。RS-232通訊協(xié)定一開始是設(shè)計(jì)與數(shù)據(jù)機(jī)連結(jié)作傳輸,所與之連結(jié)的裝置可以略分為資料終端裝置(DTE, Data Terminal Equipment)和資料通

4、訊裝置(DCE, Data Communication Equipment)兩種。以DB-9的9隻腳為主要的介面。由於線路的損耗與雜訊干擾,傳輸距離的建議值約不超過十多公尺。RS-232第8頁,共31頁。RS-232名稱全名說明GNDGround信號(hào)接地,提供電路參考電位。TXDTransmitted Data資料發(fā)送接腳RXDReceived Data資料接收接腳RTSRequest To Send要求發(fā)送資料CTSClear To Send回應(yīng)RTS訊息,通知對(duì)方可以發(fā)送DSRData Set Ready通知電腦已在待命狀態(tài)DTRData Terminal Ready告知資料終端處於待命D

5、CDData Carrier Detect確認(rèn)數(shù)據(jù)機(jī)載波RIRing Indication通知有電話網(wǎng)路的信號(hào)第9頁,共31頁。電腦來說RS232電壓的變化是正負(fù)15V,但對(duì)於單晶片的嵌入式系統(tǒng)而言,準(zhǔn)位則是0-3V或0-5V,決定於單晶片的驅(qū)動(dòng)電壓。市面上也有專用於RS232電位轉(zhuǎn)換的IC,例如:HIN232、MAX232等。RS-232準(zhǔn)位(資料來源:intersil公司HIN232說明手冊(cè))第10頁,共31頁。RS-232接線範(fàn)例(資料來源:intersil公司HIN232說明手冊(cè))第11頁,共31頁。由圖可以看到一共有紅、藍(lán)兩色分別表示一組TX、RX。也就是說一顆晶片上實(shí)際可以支援兩組

6、的輸出、輸入訊號(hào)準(zhǔn)位變化。橘色的線則表示了訊號(hào)的方向。若系統(tǒng)需要RTS等其它的功能腳位,也可以利用這邊的準(zhǔn)位轉(zhuǎn)換,不一定只能使用在資料上。RS-232接線範(fàn)例第12頁,共31頁。Arduino的訊號(hào)轉(zhuǎn)換電路第13頁,共31頁。Arduino的硬體時(shí),在板子上有FT232這顆USB轉(zhuǎn)RS-232訊號(hào)IC,提供USB的介面供使用者在開發(fā)的時(shí)候方便連結(jié)電腦使用,這樣就不怕缺少COM。RS-232介面轉(zhuǎn)換第14頁,共31頁。RS-232通訊協(xié)定STARTD0D1D2D3D4D5D6D7PSTOP起始字元資料位元奇偶位元停止位元第15頁,共31頁。起始位元(START BIT):表示之後的位元為資料,以

7、上圖的例子起始位元為0(低電位)。資料位元(DATA BIT):可以選擇資料大小為7或8個(gè)位元。(奇偶)同位元檢查(PARITY BIT):是指包含在起始位元和停止位元中間的資料必須要有偶數(shù)個(gè)或是奇數(shù)的1。停止位元(STOP BIT):停止位元數(shù)有1個(gè)和2個(gè)兩種選擇。通常設(shè)定為1個(gè)。RS-232通訊協(xié)定第16頁,共31頁。資料傳輸速率常見為1200的倍數(shù),從1200、2400、4800、9600、38400、57600、115200等,單位是bps (bits per second),請(qǐng)記得在傳送資料時(shí),英文字和數(shù)字等標(biāo)準(zhǔn)ASCII碼的字元,1個(gè)字是1 byte (等於8bits),這樣的傳輸

8、速率在現(xiàn)在來說是相當(dāng)慢的,USB、1394等新一代的介面速度皆遠(yuǎn)遠(yuǎn)大於此,不過在一般的工業(yè)設(shè)備或是感測(cè)模組中,RS-232還是相當(dāng)普遍常見的,像是全球定位系統(tǒng)GPS模組也是採用232協(xié)定。RS-232通訊協(xié)定第17頁,共31頁。超級(jí)終端機(jī)only in XP第18頁,共31頁。除了一般常見的傳送、接收資料顯示外,它還支援了監(jiān)測(cè)電腦上某個(gè)串列埠的功能,可以隨時(shí)監(jiān)看在這個(gè)COM內(nèi)所有的資料進(jìn)出,相當(dāng)方便。Access Port第19頁,共31頁。RS-232逐漸改向RS-485的協(xié)定方式發(fā)展,主因?yàn)镽S-232的訊號(hào)為單接點(diǎn)的方式,也就是單靠一條線路上的電壓變化,容易受到雜訊或距離的影響使資料內(nèi)的

9、位元判斷錯(cuò)誤。而RS-485採用差動(dòng)式,兩條接線皆有電壓變化透過同一時(shí)刻的訊號(hào)差異來表示資料,抗干擾的能力較強(qiáng),速度與傳輸距離也可以大大提升。RS-232 and RS-485第20頁,共31頁。在Arduino中,標(biāo)準(zhǔn)程式下載的介面便是RS-232,透過USB的接線經(jīng)由Arduino上的轉(zhuǎn)換晶片後,與第0和1兩支數(shù)位PIN腳做連結(jié),分別是RX與TX。Arduino串列埠通訊第21頁,共31頁。在開啟Arduino的開發(fā)環(huán)境後,可以在Tools內(nèi)的Serial Port選擇目前連結(jié)的通訊埠。如果你有兩塊以上不同的Arduino開發(fā)板,要注意每塊的通訊埠號(hào)碼都會(huì)不一樣,使用前必須先行確認(rèn)過。Ar

10、duino串列埠通訊第22頁,共31頁。void setup() /初始化串列埠,鮑9600 Serial.begin(9600); void loop() /想要輸出的字串 Serial.println(Hello RS-232); delay(1000); /輸出慢一點(diǎn)範(fàn)例第23頁,共31頁。設(shè)定:Serial.begin(9600)初始化串列埠,鮑率9600範(fàn)例第24頁,共31頁。顯示:Serial.print(Hello RS-232);每次換行,想要輸出的字串:Serial.println(Hello RS-232);範(fàn)例第25頁,共31頁。Serial.println(testBy

11、te,BYTE);/以ASCII形式輸出Serial.println(testByte,DEC);/以10進(jìn)位形式輸出Serial.println(testByte,HEX);/以16進(jìn)位形式輸出Serial.println(testByte,BIN); /以2進(jìn)位形式輸出Serial.println(testByte,OCT);/以8進(jìn)位形式輸出輸出資料型態(tài)第26頁,共31頁。資料型態(tài)輸出結(jié)果ASCII碼(Byte)A10進(jìn)位6516進(jìn)位412進(jìn)位10000018進(jìn)位101輸出型態(tài)比較第27頁,共31頁。c = Serial.read(); 讀取經(jīng)由串列埠傳送來的資料,把輸入的字元存至c這個(gè)變數(shù)當(dāng)中輸入資料第28頁,共31頁。在Arduino中,在等待一段時(shí)間都沒有資料輸入後,自動(dòng)跳往下一行程式執(zhí)行,我們的範(fàn)例中,接著輸入後就是輸出至電腦的函式,也因?yàn)闆]有收到資料的結(jié)果,輸出就變成了亂碼。但實(shí)際當(dāng)我們有輸入時(shí),這個(gè)範(fàn)例還是可以將資料完整的回送到電腦做顯示。輸入資料第29頁,共31頁。在Arduino中提供了一個(gè)函式,負(fù)責(zé)判斷有無資料透過RS-232的腳位傳送進(jìn)來:Serial

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論