




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八講 串行接口與通信主講教師:董秀則(主樓610;5097 /單片機(jī)與嵌入式系統(tǒng)單片機(jī)與嵌入式系統(tǒng)本講主要內(nèi)容及重點(diǎn)本講主要內(nèi)容及重點(diǎn)n 串行通信接口概述串行通信接口概述 串并接口轉(zhuǎn)換設(shè)計(jì)串并接口轉(zhuǎn)換設(shè)計(jì) 數(shù)字IO的串行擴(kuò)展n UART通用串行接口通用串行接口 異步異步UART數(shù)據(jù)傳輸時(shí)序數(shù)據(jù)傳輸時(shí)序 MEGA16配置配置UART的方法的方法n 串行SPI接口 工作模式和時(shí)序n TWI雙線串行接口設(shè)計(jì)與應(yīng)用9.1 串行通信接口概述串行通信接口概述對(duì)比兩個(gè)概念對(duì)比兩個(gè)概念:并行和串行并行和串行n并行傳輸:通過地址和數(shù)據(jù)總線,一次傳輸一并行傳輸:通過地址和數(shù)據(jù)總線,一次
2、傳輸一個(gè)字節(jié)或字的通信方式。個(gè)字節(jié)或字的通信方式。 優(yōu)點(diǎn):操作時(shí)序簡(jiǎn)單、速度快優(yōu)點(diǎn):操作時(shí)序簡(jiǎn)單、速度快 缺點(diǎn):需要并行通道硬件結(jié)構(gòu)復(fù)雜、抗干擾能力缺點(diǎn):需要并行通道硬件結(jié)構(gòu)復(fù)雜、抗干擾能力差差n串行傳輸:數(shù)據(jù)的代碼序列在串行傳輸:數(shù)據(jù)的代碼序列在一條信道一條信道上以位上以位為單位,為單位,按時(shí)間順序按時(shí)間順序按位按位傳輸?shù)耐ㄐ欧绞?。傳輸?shù)耐ㄐ欧绞健?缺點(diǎn):操作時(shí)序復(fù)雜、速度慢(相對(duì))、軟件復(fù)缺點(diǎn):操作時(shí)序復(fù)雜、速度慢(相對(duì))、軟件復(fù)雜雜 優(yōu)點(diǎn):擴(kuò)展方便、使用靈活、電路系統(tǒng)簡(jiǎn)單、占優(yōu)點(diǎn):擴(kuò)展方便、使用靈活、電路系統(tǒng)簡(jiǎn)單、占用用IO資源少、抗干擾能力強(qiáng)資源少、抗干擾能力強(qiáng)9.1.1并行傳輸擴(kuò)展并
3、行傳輸擴(kuò)展n 典型的并行傳輸擴(kuò)展典型的并行傳輸擴(kuò)展 16位數(shù)據(jù)線位數(shù)據(jù)線 讀讀/寫信號(hào)寫信號(hào)9.1.1并行傳輸擴(kuò)展并行傳輸擴(kuò)展n 典型的并行傳輸擴(kuò)展典型的并行傳輸擴(kuò)展 8K SRAM 373鎖存器鎖存器 片選信號(hào)、鎖存信號(hào)片選信號(hào)、鎖存信號(hào) 地址總線地址總線13根、數(shù)據(jù)根、數(shù)據(jù)總線總線8根(復(fù)用)根(復(fù)用) 讀讀/寫信號(hào)寫信號(hào)9.1.2 數(shù)字?jǐn)?shù)字IO的串行擴(kuò)展的串行擴(kuò)展n當(dāng)當(dāng)AVR本身本身IO口不足時(shí)如何處理?口不足時(shí)如何處理? 進(jìn)行進(jìn)行IO口的擴(kuò)展使用口的擴(kuò)展使用使用使用1個(gè)個(gè)IO口輸出數(shù)據(jù)口輸出數(shù)據(jù)使用串并轉(zhuǎn)換擴(kuò)展控制使用串并轉(zhuǎn)換擴(kuò)展控制n如何實(shí)現(xiàn)外部并行數(shù)據(jù)的串行讀入?如何實(shí)現(xiàn)外部并行數(shù)
4、據(jù)的串行讀入? 使用一個(gè)使用一個(gè)8位的端口位的端口 進(jìn)行并串轉(zhuǎn)換進(jìn)行并串轉(zhuǎn)換并行輸出端口的串行擴(kuò)展并行輸出端口的串行擴(kuò)展74HC164邏輯移位寄存器邏輯移位寄存器n 74HC164串行輸入、并行輸出n 真值表輸入輸入輸出輸出CLRCLKABQAQB.QHLxxxLL.LHxx不變化不變化HLxLQAn.QGnHxLLQAn.QGnHHHHQAn.QGnvoid hc164_send_byte(unsigned char disp_Num)unsigned int I;for(i=0;i8;i+)PORTB = PORTB &( (11); ;拉低拉低clk電平電平PORTB = PORTB &
5、(disp_num | 0 xFE) ;置置data值值PORTB = PORTB | (1= disp_num;利用利用595實(shí)現(xiàn)串并轉(zhuǎn)換實(shí)現(xiàn)串并轉(zhuǎn)換HC595邏輯功能表邏輯功能表輸入輸入輸出輸出ResetAclkLatchOELxxxx移位寄存器清零移位寄存器清零HLxx移位寄存器右移一位,移位寄存器右移一位,Qa=L,SQh=QhHHxx移位寄存器右移一位,移位寄存器右移一位,Qa=H,SQh=QhHxxx移位寄存器不變移位寄存器不變HxLx移位寄存器內(nèi)容打入鎖存器移位寄存器內(nèi)容打入鎖存器HxLx鎖存器內(nèi)容不變鎖存器內(nèi)容不變HxLLL鎖存器由鎖存器由QaQh輸出輸出HxLLHQaQh輸出
6、高阻輸出高阻上圖中:上圖中: OE固定為低電平,固定為低電平,Reset固定為高電平。固定為高電平。通過通過A和和clk的控制的控制將數(shù)據(jù)串行打入;將數(shù)據(jù)串行打入;通過通過Latch的邊緣控制的邊緣控制將數(shù)據(jù)鎖存輸出將數(shù)據(jù)鎖存輸出平常情況下:系統(tǒng)應(yīng)當(dāng)處于平常情況下:系統(tǒng)應(yīng)當(dāng)處于鎖存器輸出狀態(tài)鎖存器輸出狀態(tài)void hc595_send_byte(unsigned char disp_Num)unsigned int I;for(i=0;i8;i+)PORTA = PORTA &(disp_num | 0 xFE) ;置置data值值PORTA = PORTA | (11);拉高拉高clk電平電
7、平PORTA = PORTA &( (11;void hc595_send_2byte(unsigned int data)unsigned int Int_L, Int_H;Int_L = data;Int_H = data8;hc595_send_byte(Int_L );hc595_send_byte(Int_H );PORTA = PORTA | (12);拉高拉高Latch電平,將數(shù)據(jù)鎖存電平,將數(shù)據(jù)鎖存PORTA = PORTA &( (12); ;拉低拉低Latch電平電平串行擴(kuò)展并行輸入口串行擴(kuò)展并行輸入口HC165功能邏輯功能邏輯n 如圖所示:如圖所示:CLk_Inh和和Se
8、r固定設(shè)置位低電平固定設(shè)置位低電平n 利用利用SH的控制將并行數(shù)據(jù)打入;的控制將并行數(shù)據(jù)打入;CLk控制將串行數(shù)據(jù)輸出到控制將串行數(shù)據(jù)輸出到IO引腳。引腳。n 該圖只適用于外部狀態(tài)的自主讀入該圖只適用于外部狀態(tài)的自主讀入輸入輸入內(nèi)部狀態(tài)內(nèi)部狀態(tài)輸出輸出功能說明功能說明SH/LDnClk_InhclkSerAHQaQgQhLxxxahagh并行數(shù)據(jù)輸入并行數(shù)據(jù)輸入HLLxL QaQfQg移位移位HLHxH QaQfQg移位移位HHxxx保持不變保持不變時(shí)鐘輸入禁止時(shí)鐘輸入禁止HLLxx保持不變保持不變無時(shí)鐘無時(shí)鐘n問題問題: (P356)上圖只是適用與外部狀態(tài)的上圖只是適用與外部狀態(tài)的讀入,如果
9、外部是一個(gè)智能讀入,如果外部是一個(gè)智能IOIO設(shè)備(只有并設(shè)備(只有并行輸出口)或者進(jìn)行雙機(jī)通信(對(duì)方機(jī)為輸行輸出口)或者進(jìn)行雙機(jī)通信(對(duì)方機(jī)為輸出,本機(jī)接收),上圖應(yīng)當(dāng)進(jìn)行如何修改?出,本機(jī)接收),上圖應(yīng)當(dāng)進(jìn)行如何修改?如何進(jìn)行相應(yīng)的軟件設(shè)計(jì)?任意提出如何進(jìn)行相應(yīng)的軟件設(shè)計(jì)?任意提出1 1種與例種與例題不同的做法。題不同的做法。n 常用的串行通信常用的串行通信 串并轉(zhuǎn)換接口(串行串并轉(zhuǎn)換接口(串行IOIO擴(kuò)展):擴(kuò)展):利用利用8251、74164、74165、74595等器件進(jìn)行的擴(kuò)展等器件進(jìn)行的擴(kuò)展電平邏輯、同步通信、適用于板級(jí)擴(kuò)展或者設(shè)備內(nèi)部通電平邏輯、同步通信、適用于板級(jí)擴(kuò)展或者設(shè)備
10、內(nèi)部通信信 SPISPI(串行外設(shè)接口)(串行外設(shè)接口):同步通信方式,適用于板級(jí)擴(kuò)展:同步通信方式,適用于板級(jí)擴(kuò)展通信、電平邏輯通信、電平邏輯 I2CI2C:同步通信方式,適用于板級(jí)擴(kuò)展通信、電平邏輯:同步通信方式,適用于板級(jí)擴(kuò)展通信、電平邏輯 RS232RS232:電平負(fù)邏輯、異步通信、適用于系統(tǒng)間通信:電平負(fù)邏輯、異步通信、適用于系統(tǒng)間通信 RS422/485RS422/485:差分邏輯、異步通信、適用于系統(tǒng)間通信:差分邏輯、異步通信、適用于系統(tǒng)間通信 USBUSB:差分邏輯、同步通信、適用于系統(tǒng)間通信:差分邏輯、同步通信、適用于系統(tǒng)間通信 13941394:差分邏輯、同步通信、適用于系
11、統(tǒng)間通信:差分邏輯、同步通信、適用于系統(tǒng)間通信 LVDSLVDS,CANCAN 。9.1.3串行通信及其分類串行通信及其分類9.1.3串行通信及其分類串行通信及其分類n 串行通信的分類:同步通信和異步通信兩類。串行通信的分類:同步通信和異步通信兩類。 同步通信是按照識(shí)別同步字符來實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收同步通信是按照識(shí)別同步字符來實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收 異步通信是一種利用字符的再同步技術(shù)的通信方式。異步通信是一種利用字符的再同步技術(shù)的通信方式。n 同步通信:同步通信: 時(shí)鐘信號(hào)時(shí)鐘信號(hào) 同步字符同步字符 校驗(yàn)字校驗(yàn)字n 異步通信:異步通信: 相同的數(shù)據(jù)傳輸波特率相同的數(shù)據(jù)傳輸波特率 相同的字符幀格式
12、(起始位、校驗(yàn)位、字符位數(shù)等)相同的字符幀格式(起始位、校驗(yàn)位、字符位數(shù)等)9.2 異步通信異步通信n 關(guān)鍵在于關(guān)鍵在于 如何檢測(cè)到數(shù)據(jù)在傳輸如何檢測(cè)到數(shù)據(jù)在傳輸 如何正確檢測(cè)到具體的數(shù)據(jù)位如何正確檢測(cè)到具體的數(shù)據(jù)位 如何組織數(shù)據(jù)如何組織數(shù)據(jù) 如何確認(rèn)數(shù)據(jù)如何確認(rèn)數(shù)據(jù)?如何判斷數(shù)據(jù)收如何判斷數(shù)據(jù)收取結(jié)束取結(jié)束n要求:要求: 相同的傳輸速率相同的傳輸速率 相同的傳輸協(xié)議相同的傳輸協(xié)議怎么進(jìn)行數(shù)據(jù)的獲取和同步?每位數(shù)據(jù)的有效時(shí)每位數(shù)據(jù)的有效時(shí)間長(zhǎng)度固定間長(zhǎng)度固定異步通信異步通信n異步通信需要遵循以下準(zhǔn)則:異步通信需要遵循以下準(zhǔn)則: 相同的波特率相同的波特率 相同的通信數(shù)據(jù)協(xié)議相同的通信數(shù)據(jù)協(xié)議 異
13、步數(shù)據(jù)通信采用面向字符的傳輸格式,異步數(shù)據(jù)通信采用面向字符的傳輸格式,即:以字符為數(shù)據(jù)幀即:以字符為數(shù)據(jù)幀異步傳輸?shù)淖址麕袷疆惒絺鬏數(shù)淖址麕袷?713713位組成;分為四個(gè)部分:位組成;分為四個(gè)部分:起始位、數(shù)據(jù)位起始位、數(shù)據(jù)位、校驗(yàn)位、校驗(yàn)位、停止位停止位空閑時(shí)保持邏輯空閑時(shí)保持邏輯1 1起始位為起始位為1 1位邏輯位邏輯“0 0”停止位:停止位:1212位,邏輯位,邏輯“1 1”數(shù)據(jù)位:數(shù)據(jù)位:5959位位校驗(yàn)位:校驗(yàn)位:0101位位波特率波特率n定義:每秒傳輸定義:每秒傳輸2進(jìn)制數(shù)碼的位數(shù)。單位進(jìn)制數(shù)碼的位數(shù)。單位bps 常用的波特率:常用的波特率:2400、4800、9600、19
14、200、38400. n波特率確定后:波特率確定后: 發(fā)方按照固定的速率、特定的數(shù)據(jù)格式、固定的發(fā)方按照固定的速率、特定的數(shù)據(jù)格式、固定的位寬度發(fā)送數(shù)據(jù)位寬度發(fā)送數(shù)據(jù) 收方按照固定的位寬度采樣線上數(shù)據(jù),發(fā)現(xiàn)起始收方按照固定的位寬度采樣線上數(shù)據(jù),發(fā)現(xiàn)起始位進(jìn)行數(shù)據(jù)接收位進(jìn)行數(shù)據(jù)接收每位數(shù)據(jù)在總線上的延時(shí)時(shí)間每位數(shù)據(jù)在總線上的延時(shí)時(shí)間=1/=1/波特率波特率AVR串行傳輸接口串行傳輸接口USARTn USART:通用同步和異步串行收發(fā)器:通用同步和異步串行收發(fā)器 全雙工操作全雙工操作( 獨(dú)立的串行接收和發(fā)送寄存器獨(dú)立的串行接收和發(fā)送寄存器) 異步或同步操作異步或同步操作 高精度的波特率發(fā)生器高精度
15、的波特率發(fā)生器 支持支持5, 6, 7, 8, 或或9 個(gè)數(shù)據(jù)位和個(gè)數(shù)據(jù)位和1 個(gè)或個(gè)或2 個(gè)停止位個(gè)停止位 硬件支持的奇偶校驗(yàn)操作硬件支持的奇偶校驗(yàn)操作 數(shù)據(jù)過速檢測(cè)數(shù)據(jù)過速檢測(cè) 幀錯(cuò)誤檢測(cè)幀錯(cuò)誤檢測(cè) 噪聲濾波,包括錯(cuò)誤的起始位檢測(cè),以及數(shù)字低通濾波器噪聲濾波,包括錯(cuò)誤的起始位檢測(cè),以及數(shù)字低通濾波器 三個(gè)獨(dú)立的中斷:發(fā)送結(jié)束中斷三個(gè)獨(dú)立的中斷:發(fā)送結(jié)束中斷, 發(fā)送數(shù)據(jù)寄存器空中斷,發(fā)送數(shù)據(jù)寄存器空中斷,以及接收結(jié)束中斷以及接收結(jié)束中斷 多處理器通訊模式多處理器通訊模式 倍速異步通訊模式倍速異步通訊模式USART硬件結(jié)構(gòu)硬件結(jié)構(gòu) 時(shí)鐘發(fā)生器時(shí)鐘發(fā)生器 數(shù)據(jù)發(fā)送器數(shù)據(jù)發(fā)送器 數(shù)據(jù)接收器數(shù)據(jù)接收
16、器n 包括四大部分包括四大部分 時(shí)鐘發(fā)生器時(shí)鐘發(fā)生器 數(shù)據(jù)發(fā)送器數(shù)據(jù)發(fā)送器 數(shù)據(jù)接收器數(shù)據(jù)接收器 以寄存器組為以寄存器組為核心的控制器核心的控制器MEGA中的中的UART寄存器寄存器n UDR USART 發(fā)送數(shù)據(jù)緩沖寄存器和USART 接收數(shù)據(jù)緩沖寄存器共享相同的I/O 地址,稱為USART 數(shù)據(jù)寄存器或UDRn UCSRA、UCSRB、UCSRC USART 控制和狀態(tài)寄存器n UBRRH、UBRRL 波特率寄存器波特率寄存器USART涉及的寄存器涉及的寄存器n數(shù)據(jù)寄存器:數(shù)據(jù)寄存器:UDR($0d)n兩個(gè)相同地址、但物理上分離的寄存器兩個(gè)相同地址、但物理上分離的寄存器讀操作讀操作接收寄存
17、器接收寄存器寫操作寫操作發(fā)送寄存器發(fā)送寄存器n使用數(shù)值幀位數(shù)不足使用數(shù)值幀位數(shù)不足8 8位,發(fā)送時(shí)忽略高位,發(fā)送時(shí)忽略高位;接收時(shí)硬件清零高位位;接收時(shí)硬件清零高位n 三個(gè)控制寄存器:三個(gè)控制寄存器:UCSRA($0A) UCSRB($0B) UCSRC($20)控制與狀態(tài)寄存器控制與狀態(tài)寄存器UCSRA狀態(tài)位狀態(tài)位 接收完成:接收完成:接收到字符從移位寄存接收到字符從移位寄存器傳入器傳入U(xiǎn)DR中置中置1禁止接收或者讀取禁止接收或者讀取UDR使該位清使該位清0該位置該位置1可觸發(fā)接收中可觸發(fā)接收中斷斷相應(yīng)中斷時(shí)該位清相應(yīng)中斷時(shí)該位清0,也可寫,也可寫1清清0該位置該位置1可觸發(fā)發(fā)送完畢中斷可觸
18、發(fā)發(fā)送完畢中斷移位寄存器發(fā)送完畢,且移位寄存器發(fā)送完畢,且UDR中中沒有數(shù)據(jù)時(shí)置沒有數(shù)據(jù)時(shí)置1 發(fā)送完成:發(fā)送完成:一旦讀取一旦讀取UDR這些位就清除這些位就清除PE:數(shù)據(jù)傳輸中發(fā)生奇偶校驗(yàn)錯(cuò):數(shù)據(jù)傳輸中發(fā)生奇偶校驗(yàn)錯(cuò)DOR:存在沒有來得及取走的接收數(shù)據(jù)存在沒有來得及取走的接收數(shù)據(jù)FE:接收不到停止位:接收不到停止位出錯(cuò)狀態(tài)位:幀錯(cuò)、過速錯(cuò)、校驗(yàn)錯(cuò)出錯(cuò)狀態(tài)位:幀錯(cuò)、過速錯(cuò)、校驗(yàn)錯(cuò)倍速倍速數(shù)據(jù)寄存器空:數(shù)據(jù)寄存器空:UDR數(shù)據(jù)傳送到移位數(shù)據(jù)傳送到移位寄存器中時(shí)置寄存器中時(shí)置1可觸發(fā)發(fā)送寄存器空中可觸發(fā)發(fā)送寄存器空中斷斷轉(zhuǎn)入中斷相應(yīng)或者給該轉(zhuǎn)入中斷相應(yīng)或者給該位寫位寫1清零該位清零該位多機(jī)多機(jī)通信
19、通信控制與狀態(tài)寄存器控制與狀態(tài)寄存器UCSRBn UCSZ2與與UCSRC中的中的UCSZ1和和0聯(lián)合確定字符數(shù)據(jù)幀的聯(lián)合確定字符數(shù)據(jù)幀的有效位數(shù)有效位數(shù)中斷允許位:中斷允許位:接收中斷允許、發(fā)送完成中斷接收中斷允許、發(fā)送完成中斷允許、發(fā)送緩沖器空中斷允許允許、發(fā)送緩沖器空中斷允許該位一旦設(shè)置則對(duì)應(yīng)引腳與數(shù)字該位一旦設(shè)置則對(duì)應(yīng)引腳與數(shù)字IO接口功能斷開,實(shí)現(xiàn)接口功能斷開,實(shí)現(xiàn)Rx和和Tx功能功能發(fā)送和接收允許位:發(fā)送和接收允許位:接收和發(fā)送第接收和發(fā)送第9位數(shù)據(jù)位:位數(shù)據(jù)位:接收時(shí):需要先讀接收時(shí):需要先讀RxB8再讀再讀UDR發(fā)送時(shí):需要先寫發(fā)送時(shí):需要先寫TxB8再寫再寫UDR控制與狀態(tài)寄
20、存器控制與狀態(tài)寄存器UCSRC($20) 寄存器選擇位:寄存器選擇位:操作方法:操作方法:寫操作該位為寫操作該位為0:為波特率設(shè)置高字節(jié):為波特率設(shè)置高字節(jié)UBRRH寫操作該位為寫操作該位為1:UCSRC讀操作:第讀操作:第1次讀取為次讀取為UBRRH,兩個(gè),兩個(gè)系統(tǒng)周期中第系統(tǒng)周期中第2次讀取為次讀取為UCSRC1:為通過模式;:為通過模式;0:為異步模式:為異步模式工作模式選擇:工作模式選擇:1:奇校驗(yàn):奇校驗(yàn)0:偶校驗(yàn):偶校驗(yàn)校驗(yàn)方式選擇:校驗(yàn)方式選擇:停止位選擇:停止位選擇:1:2位位0:1位位時(shí)鐘極性選擇:時(shí)鐘極性選擇:只在同步時(shí)有效只在同步時(shí)有效1:下降沿采樣:下降沿采樣0:上升沿
21、采樣:上升沿采樣波特率寄存器波特率寄存器UBRRn 構(gòu)成12位波特率設(shè)置n 值:04095USART波特率計(jì)算波特率計(jì)算n 通過設(shè)定通過設(shè)定UCSRA 寄存器的寄存器的U2X 可以使傳輸速率加倍。該位可以使傳輸速率加倍。該位只對(duì)異步工作模式有效。只對(duì)異步工作模式有效。n 當(dāng)工作在同步模式時(shí),設(shè)置當(dāng)工作在同步模式時(shí),設(shè)置U2X位為位為0”。n 波特率的設(shè)置誤差:波特率的設(shè)置誤差:(1) 100%MatchSetBaudRateErrorBaudRate例:例:n設(shè)置設(shè)置MEGA16 通信速率通信速率9600bps 8個(gè)數(shù)據(jù)位個(gè)數(shù)據(jù)位 奇校驗(yàn)奇校驗(yàn) 兩個(gè)停止位兩個(gè)停止位例:例: 使用串口使用串口U
22、CSRB的RXEN和和TXEN都為都為1 通信速率通信速率9600bps 8個(gè)數(shù)據(jù)位個(gè)數(shù)據(jù)位UCSRC的的UCSZ1:0為為11 奇校驗(yàn)奇校驗(yàn)UCSRC的UPM為11 兩個(gè)停止位兩個(gè)停止位UCSRC的USBS為1UCSRC和和UBRRH操作操作n 寫操作寫操作n 讀讀UCSRC操作操作讀讀UCSRCUCSRC操作,首先讀取的值操作,首先讀取的值是是UBRRHUBRRH,緊接著讀取第二次,緊接著讀取第二次才是才是UCSRCUCSRC的值的值A(chǔ)VR USART基本操作基本操作n 基本操作包括三大類操作基本操作包括三大類操作 初始化初始化 接收數(shù)據(jù)接收數(shù)據(jù) 發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)n 初始化初始化 設(shè)置波特
23、率設(shè)置波特率 使能接收和發(fā)送器使能接收和發(fā)送器 設(shè)置幀格式設(shè)置幀格式n 接收和發(fā)送數(shù)據(jù)接收和發(fā)送數(shù)據(jù) 中斷方式中斷方式 查詢方式查詢方式初始化初始化波特率設(shè)置波特率設(shè)置使能接收和發(fā)送器使能接收和發(fā)送器設(shè)置幀格式設(shè)置幀格式默認(rèn)波特率計(jì)算好,默認(rèn)波特率計(jì)算好,保存在保存在R17:R16R17:R16中中C C語言程序可以通過語言程序可以通過ICCICC應(yīng)用程序向?qū)е睉?yīng)用程序向?qū)е苯幼詣?dòng)生成接自動(dòng)生成接收數(shù)據(jù):接收數(shù)據(jù):以輪詢方式接收以5 8 個(gè)數(shù)據(jù)位數(shù)據(jù)幀等待接收數(shù)據(jù)完成等待接收數(shù)據(jù)完成讀取接收數(shù)據(jù)讀取接收數(shù)據(jù)以輪詢方式接收以輪詢方式接收9 9 個(gè)數(shù)據(jù)位的數(shù)據(jù)幀個(gè)數(shù)據(jù)位的數(shù)據(jù)幀等待接收數(shù)據(jù)完成等待
24、接收數(shù)據(jù)完成首先讀取狀態(tài)和第首先讀取狀態(tài)和第9位數(shù)據(jù)位數(shù)據(jù)然后讀取數(shù)據(jù)寄存器然后讀取數(shù)據(jù)寄存器判斷是否有錯(cuò)誤判斷是否有錯(cuò)誤這是這是P380P380頁書中程序,頁書中程序,但這里有一個(gè)錯(cuò)誤!但這里有一個(gè)錯(cuò)誤!設(shè)定設(shè)定R17:R16R17:R16為接收數(shù)據(jù)為接收數(shù)據(jù)的輸出接口的輸出接口n 以輪詢方式接收以輪詢方式接收9 個(gè)數(shù)據(jù)位的數(shù)據(jù)幀個(gè)數(shù)據(jù)位的數(shù)據(jù)幀發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù):以輪詢方式發(fā)送5 8 個(gè)數(shù)據(jù)位的數(shù)據(jù)幀等待發(fā)送緩沖器空等待發(fā)送緩沖器空發(fā)送數(shù)據(jù)送緩沖器發(fā)送數(shù)據(jù)送緩沖器設(shè)設(shè)R16R16為需要發(fā)送的數(shù)據(jù)為需要發(fā)送的數(shù)據(jù)以輪詢方式發(fā)送9 個(gè)數(shù)據(jù)位的數(shù)據(jù)幀等待接收數(shù)據(jù)完成等待接收數(shù)據(jù)完成清零清零TX8判
25、斷第判斷第9位數(shù)據(jù),為位數(shù)據(jù),為1置位置位Tx8低低8位數(shù)據(jù)寫入發(fā)送數(shù)據(jù)寄存器位數(shù)據(jù)寫入發(fā)送數(shù)據(jù)寄存器假定數(shù)據(jù)放在假定數(shù)據(jù)放在R17:R16中中9.3 UART通用串行接口設(shè)計(jì)與應(yīng)用通用串行接口設(shè)計(jì)與應(yīng)用自發(fā)自收測(cè)試自發(fā)自收測(cè)試n硬件接口設(shè)計(jì):硬件接口設(shè)計(jì): Rx與與Tx直接相連直接相連n軟件設(shè)計(jì):軟件設(shè)計(jì): 中斷接收,并顯示接收數(shù)據(jù)中斷接收,并顯示接收數(shù)據(jù) 查詢方式發(fā)送(在主程序中)查詢方式發(fā)送(在主程序中)n為提高抗干擾能力,使用異步串口時(shí)設(shè)置:為提高抗干擾能力,使用異步串口時(shí)設(shè)置: RxDRxD輸入且?guī)侠娮栎斎肭規(guī)侠娮?TxDTxD輸出狀態(tài)輸出狀態(tài)n程序參考程序參考P384頁例題
26、頁例題n void port_init(void) PORTA = 0 xFF; DDRA = 0 x00; PORTB = 0 xFF; DDRB = 0 xFF; PORTC = 0 x00; DDRC = 0 x00; PORTD = 0 x03; DDRD = 0 x02;n void uart0_init(void) UCSRB = 0 x00; /disable while setting baud rate UCSRA = 0 x00; UCSRC = BIT(URSEL) | 0 x06; UBRRL = 0 x02; /set baud rate lo UBRRH = 0 x
27、00; /set baud rate hi UCSRB = 0 xF8;n #pragma interrupt_handler uart0_rx_isr:12void uart0_rx_isr(void) /uart has received a character in UDR unsigned char state=0,data; state = UCSRA; data = UDR Rx_head = (Rx_head+) % 16; if ( Rx_head != Rx_tail) RxbuffRx_head = dataelse RxbuffOFL = 1; Rx_head = (Rx
28、_head+15) % 16; n #pragma interrupt_handler uart0_udre_isr:13void uart0_udre_isr(void) /character transferred to shift register so UDR is now empty Tx_tail = (Tx_tail+15) % 16; if ( Tx_tail != Tx_head) UDR = TxbuffTx_tail else Txbuffemp = 1; Tx_tail = (Tx_tail+1) % 16; n unsigned char Rxbuff16;unsig
29、ned char Txbuff16;unsigned char Rx_head=0,Rx_tail=0;unsigned char Tx_head=0,Tx_tail=0;unsigned char Txbuffemp=0;unsigned char RxbuffOFL=0;nvoid main(void) unsigned char i; init_devices(); while (1) i = (Tx_head+)%16 ; if (i != Tx_tail) Tx_head+; TxbuffTx_head = TxData; if (Rx_tail != Rx_head) /數(shù)據(jù)處理數(shù)
30、據(jù)處理 Rx_tail = (Rx_tail-)%16 異步串行通信接口異步串行通信接口n為了更好的提高通信的可靠性、傳輸?shù)木嚯x為了更好的提高通信的可靠性、傳輸?shù)木嚯x各個(gè)組織和公司提出了不同的異步通信接口各個(gè)組織和公司提出了不同的異步通信接口nRS232nRS485/422RS232異步通信接口系統(tǒng)級(jí)擴(kuò)展異步通信接口系統(tǒng)級(jí)擴(kuò)展n Rs232總線標(biāo)準(zhǔn)總線標(biāo)準(zhǔn) EIA制定的異步通制定的異步通信物理接口標(biāo)準(zhǔn)信物理接口標(biāo)準(zhǔn) 9針和針和25針接口針接口 邏輯邏輯0:+3+25V,通常采用,通常采用-12V; 邏輯邏輯1:-3-25V,通常采用通常采用+12V引腳引腳名稱名稱方向方向信號(hào)功能信號(hào)功能1DC
31、D本本對(duì)對(duì)載波檢測(cè)信號(hào)載波檢測(cè)信號(hào)2RXD本本對(duì)對(duì)接收數(shù)據(jù)接收數(shù)據(jù)3TXD本本對(duì)對(duì)發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)4DTR本本對(duì)對(duì)本機(jī)準(zhǔn)備好本機(jī)準(zhǔn)備好5GND6DSR本本對(duì)對(duì)對(duì)方準(zhǔn)備就緒對(duì)方準(zhǔn)備就緒7RTS本本對(duì)對(duì)本機(jī)請(qǐng)求發(fā)送數(shù)據(jù)本機(jī)請(qǐng)求發(fā)送數(shù)據(jù)8CTS本本對(duì)對(duì)對(duì)機(jī)切換到接收狀態(tài)對(duì)機(jī)切換到接收狀態(tài),清除發(fā)送,清除發(fā)送9RI本本對(duì)對(duì)振鈴信號(hào),線路正常振鈴信號(hào),線路正常Rs232Rs232總線總線9 9芯接口定義芯接口定義電平轉(zhuǎn)換使用RS232芯片AVR系統(tǒng)系統(tǒng)RS232接口電路原理圖接口電路原理圖幾個(gè)注意的問題幾個(gè)注意的問題n不同的接頭不同的接頭 插針接頭(公頭)插針接頭(公頭) 插座接頭(母頭)插座接頭(母頭
32、)n線序的交叉:線序的交叉:板內(nèi)交叉板內(nèi)交叉連接線交叉連接線交叉利用利用AVR單片機(jī)串口與單片機(jī)串口與PC機(jī)通信機(jī)通信n 進(jìn)行三個(gè)階段的設(shè)計(jì)和測(cè)試進(jìn)行三個(gè)階段的設(shè)計(jì)和測(cè)試 第一步:第一步:UART自測(cè)試自測(cè)試連接連接Rx和和Tx 第二步:第二步:RS232通信接口自測(cè)試通信接口自測(cè)試連接連接RS232通信口通信口2和和3引腳引腳 第三步:與計(jì)算機(jī)通信測(cè)試第三步:與計(jì)算機(jī)通信測(cè)試連接計(jì)算機(jī)連接計(jì)算機(jī)RS232接口接口n 通信過程采用通信過程采用3線制通信方式線制通信方式n 軟件采用相同程序軟件采用相同程序n 具體的程序編寫和調(diào)試過程參考具體的程序編寫和調(diào)試過程參考P391394通信協(xié)議通信協(xié)議n
33、 通信協(xié)議(communications protocol)是指雙方實(shí)體完成通信或服務(wù)所必須遵循的規(guī)則和約定。協(xié)議定義了數(shù)據(jù)單元使用的格式,信息單元應(yīng)該包含的信息與含義,連接方式,信息發(fā)送和接收的時(shí)序,從而確保網(wǎng)絡(luò)中數(shù)據(jù)順利地傳送到確定的地方。通信協(xié)議通信協(xié)議n 命令包n 返回包幀頭幀頭 命令字命令字?jǐn)?shù)據(jù)長(zhǎng)度數(shù)據(jù)長(zhǎng)度數(shù)據(jù)域數(shù)據(jù)域校驗(yàn)校驗(yàn)幀頭幀頭 返回碼返回碼數(shù)據(jù)長(zhǎng)度數(shù)據(jù)長(zhǎng)度數(shù)據(jù)域數(shù)據(jù)域校驗(yàn)校驗(yàn)通信協(xié)議通信協(xié)議定義定義長(zhǎng)度長(zhǎng)度值值幀頭10 x55命令字10 x00:數(shù)據(jù)域中所有數(shù)據(jù)取反返回0 x01:數(shù)據(jù)域中所有數(shù)字加一返回?cái)?shù)據(jù)長(zhǎng)度10-255數(shù)據(jù)域校驗(yàn)1奇校驗(yàn)作業(yè)作業(yè):n第第13章:章:1、3
34、、8、911.6 TWI雙線串行接口雙線串行接口n 特點(diǎn)特點(diǎn) 簡(jiǎn)單,但是強(qiáng)大而靈活的通訊接口,只需要兩根線簡(jiǎn)單,但是強(qiáng)大而靈活的通訊接口,只需要兩根線 支持主機(jī)和從機(jī)操作支持主機(jī)和從機(jī)操作 器件可以工作于發(fā)送器模式或接收器模式器件可以工作于發(fā)送器模式或接收器模式 7 位地址空間允許有位地址空間允許有128 個(gè)從機(jī)個(gè)從機(jī) 支持多主機(jī)仲裁支持多主機(jī)仲裁 高達(dá)高達(dá)400 kHz 的數(shù)據(jù)傳輸率的數(shù)據(jù)傳輸率 可以抑制總線尖峰的噪聲抑制器可以抑制總線尖峰的噪聲抑制器 完全可編程的從機(jī)地址完全可編程的從機(jī)地址 睡眠時(shí)地址匹配可以喚醒睡眠時(shí)地址匹配可以喚醒AVRn 這兩根線一是時(shí)鐘這兩根線一是時(shí)鐘SCL,一是
35、數(shù)據(jù),一是數(shù)據(jù)SDA。n 外部硬件只需要兩個(gè)上拉電阻外部硬件只需要兩個(gè)上拉電阻n 總線上的設(shè)備都有自己的地址總線上的設(shè)備都有自己的地址n傳輸數(shù)據(jù)傳輸數(shù)據(jù) 時(shí)鐘線為高時(shí),數(shù)據(jù)線電壓必須保持穩(wěn)定時(shí)鐘線為高時(shí),數(shù)據(jù)線電壓必須保持穩(wěn)定 數(shù)據(jù)的更新在時(shí)鐘的低電平時(shí)機(jī)數(shù)據(jù)的更新在時(shí)鐘的低電平時(shí)機(jī)n SCL高電平時(shí),高電平時(shí),SDA線上電壓變化位起始和結(jié)束標(biāo)志線上電壓變化位起始和結(jié)束標(biāo)志 上升上升結(jié)束標(biāo)志結(jié)束標(biāo)志 下降下降起始標(biāo)志起始標(biāo)志n START 與與STOP 狀態(tài)之間發(fā)出一個(gè)新的狀態(tài)之間發(fā)出一個(gè)新的START 狀態(tài)狀態(tài),稱為,稱為REPEATED START 狀態(tài),適用于主機(jī)在不放狀態(tài),適用于主機(jī)在
36、不放棄總線控制的情況下啟動(dòng)新的傳送棄總線控制的情況下啟動(dòng)新的傳送地址數(shù)據(jù)包格地址數(shù)據(jù)包格n 所有在所有在TWI 總線上傳送的地址包均為總線上傳送的地址包均為 9 位位 7 位地址位:用戶定義,其中預(yù)留位地址位:用戶定義,其中預(yù)留0000000作為廣播包作為廣播包 1 位位R/W 控制位(控制位(1讀;讀;0寫寫) 1 位應(yīng)答位:從機(jī)應(yīng)在位應(yīng)答位:從機(jī)應(yīng)在ACK 周期通過拉低周期通過拉低SDA 作出應(yīng)答作出應(yīng)答廣播包時(shí)需要所有從機(jī)拉低廣播包時(shí)需要所有從機(jī)拉低SDA作為作為ACKn 注意:注意: 廣播功能:用于主機(jī)需要發(fā)送相同的信息給多個(gè)從機(jī)時(shí)廣播功能:用于主機(jī)需要發(fā)送相同的信息給多個(gè)從機(jī)時(shí) 廣播
37、幀廣播幀“讀讀”指令沒有意義,引起總線沖突指令沒有意義,引起總線沖突從機(jī)地址:標(biāo)從機(jī)地址:標(biāo)明通信對(duì)象明通信對(duì)象數(shù)據(jù)幀格式數(shù)據(jù)幀格式n 數(shù)據(jù)包為數(shù)據(jù)包為9 位:位:8 位數(shù)據(jù)位及位數(shù)據(jù)位及1 位應(yīng)答位位應(yīng)答位 數(shù)據(jù)的數(shù)據(jù)的 MSB MSB 首先發(fā)送。首先發(fā)送。 主機(jī)產(chǎn)生時(shí)鐘及主機(jī)產(chǎn)生時(shí)鐘及 START START 與與STOP STOP 狀態(tài)狀態(tài) 接收器響應(yīng)接收,在第接收器響應(yīng)接收,在第9 9 個(gè)個(gè)SCL SCL 周期拉低周期拉低SDA SDA ,發(fā)出,發(fā)出ACKACK。 收到最后的字節(jié)后,發(fā)出收到最后的字節(jié)后,發(fā)出NACK NACK (接收器使(接收器使SDA SDA 為高)來告知為高)來告
38、知發(fā)送器,通知接收結(jié)束。發(fā)送器,通知接收結(jié)束。一個(gè)完整的傳輸過程一個(gè)完整的傳輸過程n 一個(gè)傳輸過程:一個(gè)傳輸過程: 1 1個(gè)個(gè)START START 狀態(tài)狀態(tài) 1 1個(gè)個(gè)SLA+R/WSLA+R/W 至少一個(gè)數(shù)據(jù)包至少一個(gè)數(shù)據(jù)包 1 1個(gè)個(gè)STOP STOP 狀態(tài)組成狀態(tài)組成 只有只有STARTSTART與與STOP STOP 狀態(tài)的空信息是非法的狀態(tài)的空信息是非法的n問題:在問題:在TWITWI(I2CI2C)傳輸中沒有流量控制,當(dāng))傳輸中沒有流量控制,當(dāng)主機(jī)的主機(jī)的SCLSCL頻率高于從機(jī)所能接受的通信速率頻率高于從機(jī)所能接受的通信速率如何處理?能否進(jìn)行通信?如何處理?能否進(jìn)行通信? 能否
39、通過延長(zhǎng)能否通過延長(zhǎng)SCLSCL的低電平時(shí)間來降低通信速度?的低電平時(shí)間來降低通信速度?延長(zhǎng)低電平時(shí)間是否會(huì)影響高電平時(shí)間?延長(zhǎng)低電平時(shí)間是否會(huì)影響高電平時(shí)間? SCL 高電平時(shí)間是由主機(jī)決定的,從機(jī)延長(zhǎng)高電平時(shí)間是由主機(jī)決定的,從機(jī)延長(zhǎng)SCL 低電平的時(shí)間不會(huì)影響低電平的時(shí)間不會(huì)影響SCL 高電平的時(shí)間,因此高電平的時(shí)間,因此不會(huì)影響數(shù)據(jù)的采集不會(huì)影響數(shù)據(jù)的采集 當(dāng)主機(jī)設(shè)定的時(shí)鐘速度相對(duì)于從機(jī)太快,利用當(dāng)主機(jī)設(shè)定的時(shí)鐘速度相對(duì)于從機(jī)太快,利用SCL SCL 的線與功能來實(shí)現(xiàn)主機(jī)與從機(jī)的握手改變的線與功能來實(shí)現(xiàn)主機(jī)與從機(jī)的握手改變SCL SCL 的占的占空比可降低空比可降低 TWI TWI 數(shù)
40、據(jù)傳送速度,可以完成通信。數(shù)據(jù)傳送速度,可以完成通信。多主機(jī)總線仲裁多主機(jī)總線仲裁n TWI 協(xié)議允許總線上由多個(gè)主機(jī),存在兩個(gè)問題:協(xié)議允許總線上由多個(gè)主機(jī),存在兩個(gè)問題: 同時(shí)只能有同時(shí)只能有1個(gè)主機(jī)啟動(dòng)通信過程,多主機(jī)必須進(jìn)行仲裁個(gè)主機(jī)啟動(dòng)通信過程,多主機(jī)必須進(jìn)行仲裁 不同的主機(jī)不同的主機(jī)SCK不同,必須進(jìn)行同步不同,必須進(jìn)行同步n 多主機(jī)多主機(jī)SCL同步同步通過線與的方通過線與的方式,使得式,使得SCL低電平最長(zhǎng)低電平最長(zhǎng)多主機(jī)仲裁多主機(jī)仲裁n 通過通過SDA線與的方式線與的方式+主機(jī)內(nèi)部進(jìn)行檢測(cè)實(shí)現(xiàn)主機(jī)內(nèi)部進(jìn)行檢測(cè)實(shí)現(xiàn)通過通過SDA上發(fā)送的數(shù)據(jù)進(jìn)行上發(fā)送的數(shù)據(jù)進(jìn)行總線總裁總線總裁遇到發(fā)送為高電平、檢測(cè)為遇到發(fā)送為高電平、檢測(cè)為低電平的時(shí)候主機(jī)自動(dòng)放棄低電平的時(shí)候主機(jī)自動(dòng)放棄總線總線地址決定了總線的優(yōu)先占用地址決定了總線的優(yōu)先占用TWI模塊原理結(jié)構(gòu)圖模塊原理結(jié)構(gòu)圖物理引腳模塊物理引腳模塊總線接總線接口單元口單元速率生速率生成單元成單元地址匹地址匹配單元配單元控制單元控制單元n 比特率發(fā)生器單
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北京考貨運(yùn)資格證考試內(nèi)容
- 產(chǎn)品技術(shù)服務(wù)合同
- 信貸業(yè)務(wù)審批流程詳述
- 全新顧問聘用協(xié)議
- 《數(shù)據(jù)可視化技術(shù)應(yīng)用》2.2 揭示商品庫存數(shù)據(jù)動(dòng)態(tài)-教案
- 2025年遼陽道路貨運(yùn)駕駛員從業(yè)資格證考試
- 營林生產(chǎn)松林擇間伐改造提升承攬合同6篇
- 《藥物分析》課程標(biāo)準(zhǔn)
- 駕校合伙投資合同范本
- 單位食堂聘用合同范本
- 初中英語語法時(shí)態(tài)總復(fù)習(xí)課件
- 零碳數(shù)據(jù)算力中心項(xiàng)目可行性研究報(bào)告
- 研究生復(fù)試流程
- 濰坊市2025屆高三下學(xué)期開學(xué)考(診斷性調(diào)研監(jiān)測(cè))政治試題(含答案)
- 2025年浙江國有資本運(yùn)營有限公司招聘筆試參考題庫含答案解析
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 汽輪機(jī)輔機(jī)培訓(xùn)
- 主題班會(huì):預(yù)防流行性感冒課件
- 對(duì)外援助成套項(xiàng)目管理辦法(試行)
- 管道吹掃、試壓檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
- 教學(xué)教案、作業(yè)、記錄檢查記錄表
評(píng)論
0/150
提交評(píng)論