版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章串行通信接口SCI主要內(nèi)容
5.1異步串行通信的通用基礎(chǔ)知識(shí)5.2AW60的SCI模塊的編程結(jié)構(gòu)5.3AW60的SCI構(gòu)件設(shè)計(jì)與測(cè)試5.4AW60的中斷源與第一個(gè)帶有中斷的編程實(shí)例通信:計(jì)算機(jī)與外界的信息交換稱為通信。
并行通信:所傳送數(shù)據(jù)的各位同時(shí)發(fā)送或接收。
串行通信:所傳送數(shù)據(jù)的各位按順序一位一位地發(fā)送或接收。5.1異步串行通信的通用基礎(chǔ)知識(shí)串行通信的分類:同步串行通信和異步串行通信
異步串行通信
異步串行通信一幀數(shù)據(jù)格式:一個(gè)起始位“0”,表示字符的開(kāi)始,然后是5~8位數(shù)據(jù)即該字符的代碼,規(guī)定低位在前,高位在后,接下來(lái)是奇偶校驗(yàn)位(可省略),最后以停止位“1”表示字符的結(jié)束。5.1.1串行通信的基本概念…P1D0D1D2D3D4D5D6D7P10第n個(gè)字符(一幀)n-1n+10D0…起始位數(shù)據(jù)位(5~8位)校驗(yàn)位停止位優(yōu)點(diǎn):硬件結(jié)構(gòu)簡(jiǎn)單。缺點(diǎn):傳輸速度慢。5.1.1串行通信的基本概念同步串行通信在同步通信中,發(fā)送方在數(shù)據(jù)或字符開(kāi)始處就用同步字符(常約定1~2個(gè)字節(jié))指示一幀的開(kāi)始,由時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端同步,接收方一旦檢測(cè)到與規(guī)定的同步字符符合,下面就連續(xù)按順序傳送若干個(gè)數(shù)據(jù),最后發(fā)校驗(yàn)字節(jié)。SYN字符1SYN字符2數(shù)據(jù)1數(shù)據(jù)2….數(shù)據(jù)n連續(xù)傳送n個(gè)數(shù)據(jù)校驗(yàn)優(yōu)點(diǎn):傳輸速度快缺點(diǎn):對(duì)硬件結(jié)構(gòu)要求高5.1.1串行通信的基本概念串行通信方向按通信方向分類:?jiǎn)喂ぁ腚p工、全雙工通信方式1、單工方式:一端是發(fā)送端,另外一端是接收端。例如:遙控器-電視5.1.1串行通信的基本概念
2、半雙工方式:每端口都有一個(gè)發(fā)送器和一個(gè)接收器,通過(guò)開(kāi)關(guān)連接在線路上,數(shù)據(jù)可以雙向傳送,但不能同時(shí)發(fā)送和接收,要通過(guò)換向器轉(zhuǎn)換方向。例如:對(duì)講機(jī)5.1.1串行通信的基本概念3、全雙工方式:通信雙方用兩個(gè)獨(dú)立的收發(fā)器單獨(dú)連接,可以同時(shí)發(fā)送和接收數(shù)據(jù),因而提高了速度。一般MCU的異步串行通信接口都是全雙工的。例如:手機(jī)、電話5.1.1串行通信的基本概念串行通信速率(波特率)單位時(shí)間內(nèi)傳送的信息量。在計(jì)算機(jī)中,以每秒傳送的二進(jìn)制位數(shù)為單位,bps,位/秒。例如:100字符/秒,1個(gè)字符11位波特率為:100×11=1100(波特)平均每位傳送占用時(shí)間:Td=1/1100=0.909ms常用的波特率:4800、9600、19200、38400發(fā)送端和接收端,波特率必須保持一致。5.1.1串行通信的基本概念常見(jiàn)串口RS-232接口5.1.1串行通信的基本概念RS-422/485接口5.1.2RS-232總線標(biāo)準(zhǔn)特點(diǎn)引腳定義單片機(jī)如何控制RS-232接口接收、發(fā)送數(shù)據(jù)?(硬件設(shè)計(jì)、軟件設(shè)計(jì))5.1.2RS-232總線標(biāo)準(zhǔn)——特點(diǎn)RS-232的傳輸距離是15m。RS-232接口采用232電平。RS-232采用負(fù)邏輯,-3V~-15V為邏輯“1”,+3V~+15V為邏輯“0”。MCU引腳一般輸入/輸出使用TTL電平,而TTL電平的“1”和“0”的特征電壓分別為2.4V和0.4V,適用于板內(nèi)數(shù)據(jù)傳輸。9芯串行接口排列引腳號(hào)功能引腳號(hào)功能1接收線信號(hào)檢測(cè)6數(shù)據(jù)通信設(shè)備準(zhǔn)備就緒2接收數(shù)據(jù)線(RXD)7請(qǐng)求發(fā)送(RTS)3發(fā)送數(shù)據(jù)線(TXD)8允許發(fā)送(CTS)4數(shù)據(jù)終端準(zhǔn)備就緒(DTR)9振鈴指示5信號(hào)地(SG)9芯串行接口引腳含義表5.1.2RS-232總線標(biāo)準(zhǔn)——引腳定義5.1.3TTL電平到RS-232電平轉(zhuǎn)換電路MAX232芯片可以實(shí)現(xiàn)TTL電平與RS-232電平的雙向轉(zhuǎn)換。內(nèi)部有電壓倍增電路和轉(zhuǎn)換電路,僅需外接5個(gè)電容和+5V電源便可工作,使用十分方便。MAX232引腳
串行通信接口電平轉(zhuǎn)換電路MAX232芯片進(jìn)行電平轉(zhuǎn)換基本原理是:發(fā)送過(guò)程:MCU的TxD(TTL電平)經(jīng)過(guò)MAX232的11腳(T1IN)送到MAX232內(nèi)部,在內(nèi)部TTL電平被“提升”為232電平,通過(guò)14腳(T1OUT)發(fā)送出去。接收過(guò)程:外部232電平經(jīng)過(guò)MAX232的13腳(R1IN)進(jìn)入到MAX232的內(nèi)部,在內(nèi)部232電平被“降低”為TTL電平,經(jīng)過(guò)12腳(R1OUT)送到MCU的RxD,進(jìn)入MCU內(nèi)。5.1.3TTL電平到RS-232電平轉(zhuǎn)換電路SCI硬件電路設(shè)計(jì)5.1.4串行通信編程模型(工作原理)(MCU自動(dòng)完成)接收引腳RxD
發(fā)送引腳TxD發(fā)送移位寄存器(11位)接收移位寄存器(11位)MCU內(nèi)部總線SCI控制寄存器SCI狀態(tài)寄存器SCI波特率寄存器SCI數(shù)據(jù)寄存器(波特率控制)(程序控制)5.1.4串行通信編程模型(MCU自動(dòng)完成)接收引腳RxD
發(fā)送引腳TxD發(fā)送移位寄存器(11位)接收移位寄存器(11位)MCU內(nèi)部總線SCI控制寄存器SCI狀態(tài)寄存器SCI波特率寄存器接收數(shù)據(jù)Buffer(波特率控制)(程序控制)發(fā)送數(shù)據(jù)Buffer5.2AW60的SCI模塊的編程結(jié)構(gòu)1、AW60的SCI的特點(diǎn):①AW60內(nèi)有兩個(gè)獨(dú)立的SCI模塊。TxD1(13腳)、RxD1(14腳)、TxD2(63腳)、RxD2(64腳)②數(shù)據(jù)傳輸方式:半雙工、全雙工③波特率:可根據(jù)具體應(yīng)用進(jìn)行編程設(shè)定。④奇偶校驗(yàn):發(fā)送時(shí),硬件自動(dòng)產(chǎn)生并發(fā)送。接收時(shí),自動(dòng)校驗(yàn)。⑤寄存器:每個(gè)獨(dú)立的SCI模塊對(duì)應(yīng)8個(gè)8位寄存器。2個(gè)波特率寄存器、1個(gè)數(shù)據(jù)寄存器、3個(gè)控制寄存器、2個(gè)狀態(tài)寄存器5.2AW60的SCI模塊的編程結(jié)構(gòu)寄存器名稱縮寫地址訪問(wèn)權(quán)限基本功能波特率寄存器SCI1BDH(SCI2BDH)0x0038(0x0040)讀/寫讀/寫設(shè)置波特率SCI1BDL(SCI2BDL)0x0039(0x0041)數(shù)據(jù)寄存器SCI1D(SCI2D)0x003F(0x0047)收發(fā)數(shù)據(jù)控制寄存器SCI1C1(SCI2C1)0x003A(0x0042)讀/寫設(shè)置傳輸格式,中斷使能SCI1C2(SCI2C2)0x003B(0x0043)SCI1C3(SCI2C3)0x003E(0x0046)狀態(tài)寄存器SCI1S1(SCI2S1)0x003C(0x0044)只讀中斷標(biāo)志,發(fā)送與接收狀態(tài)SCI1S2(SCI2S2)0x003D(0x0045)AW60的SCI模塊寄存器簡(jiǎn)況5.2AW60的SCI模塊的編程結(jié)構(gòu)SCI波特率寄存器及SCI波特率計(jì)算公式BR
=fBUSCLK/(16×SCI波特率)SCIxBDHSCIxBDL先寫SCIxBDH,再寫SCIxBDL。5.2AW60的SCI模塊的編程結(jié)構(gòu)SCI控制寄存器1SCIxC1LOOPS=0,全雙工方式;LOOPS=1,半雙工方式。M=0,8位數(shù)據(jù)模式;M=1,9位數(shù)據(jù)模式。PE=0,奇偶校驗(yàn)禁止;PE=1,奇偶校驗(yàn)使能。PT=0,偶校驗(yàn);PT=1,奇偶校。5.2AW60的SCI模塊的編程結(jié)構(gòu)SCI控制寄存器2SCIxC2中斷使能位高電平有效發(fā)送/接收使能位高電平有效5.2AW60的SCI模塊的編程結(jié)構(gòu)SCI控制寄存器3SCIxC35.2AW60的SCI模塊的編程結(jié)構(gòu)SCI數(shù)據(jù)寄存器SCIxD5.2AW60的SCI模塊的編程結(jié)構(gòu)SCI狀態(tài)寄存器1SCIxS1(只讀)TDRE=0,發(fā)送Buffer滿;TDRE=1,發(fā)送Buffer空。(與發(fā)送有關(guān))RDRF=0,接收Buffer空;RDRF=1,接收Buffer滿。(與接收有關(guān))5.2AW60的SCI模塊的編程結(jié)構(gòu)SCI狀態(tài)寄存器2SCIxS25.2AW60的SCI模塊的編程結(jié)構(gòu)功能要求:SCI1模塊首先向PC發(fā)送字符串“HelloWorld!”,然后等待接收PC發(fā)送來(lái)的數(shù)據(jù)。若接收到數(shù)據(jù),則立即將該數(shù)據(jù)回發(fā)給PC,隨后繼續(xù)等待接收數(shù)據(jù)并回發(fā),如此循環(huán)。5.2AW60的SCI模塊的編程結(jié)構(gòu)5.3AW60的SCI模塊的測(cè)試5.3AW60的SCI構(gòu)件設(shè)計(jì)與測(cè)試5.3.1SCI硬件構(gòu)件的設(shè)計(jì)5.3AW60的SCI構(gòu)件設(shè)計(jì)與測(cè)試SCI模塊是最底層的構(gòu)件,它主要向上提供三種服務(wù),分別是SCI模塊的初始化、接收數(shù)據(jù)、發(fā)送數(shù)據(jù),向下則直接訪問(wèn)模塊寄存器,實(shí)現(xiàn)對(duì)硬件的直接操作。SCI模塊在軟件上對(duì)應(yīng)1個(gè)SCI.c文件和1個(gè)SCI.h文件。5.3.2SCI軟件構(gòu)件的設(shè)計(jì)SCI初始化:voidSCIInit(uint8SCINo,uint8sysclk,uint16baud)通過(guò)其中一個(gè)串口發(fā)送一個(gè)字節(jié):voidSCISend1(uint8SCINo,uint8ch)通過(guò)其中一個(gè)串口接收單個(gè)字節(jié):uint8SCIRe1(uint8SCINo,uint8*p)通過(guò)其中一個(gè)串口發(fā)送N個(gè)字節(jié):voidSCISendN(uint8SCINo,uint8n,uint8ch[])通過(guò)其中一個(gè)串口接收N個(gè)字節(jié):uint8SCIReN(uint8SCINo,uint8n,uint8ch[])5.3AW60的SCI構(gòu)件設(shè)計(jì)與測(cè)試5.3.3SCI構(gòu)件的C語(yǔ)言源程序文件SCI.c
1、SCI構(gòu)件的初始化功能函數(shù):SCIInit波特率寄存器賦值//1.計(jì)算波特率并設(shè)置:
ubgs=sysclk*(10000/(baud/100))/16;
SCI_BDH(SCINo)=(uint8)((ubgs&0xFF00)>>8);
SCI_BDL(SCINo)=(uint8)(ubgs&0x00FF);1、SCI構(gòu)件的初始化功能函數(shù):SCIInitSCI控制寄存器SCIXC1、SCIXC2賦值
SCI_C1(SCINo)=0b00000000;//SCI控制寄存器1//|||||||+-PT---奇偶校驗(yàn)類型,在PE=1時(shí)有用
//||||||+--PE---奇偶校驗(yàn)使能,PE=0,無(wú)校驗(yàn)
//|||||+---ILT---閑置線路類型選擇
//||||+----WAKE---接受長(zhǎng)期喚醒方式選擇
//|||+-----M---9位或8位數(shù)據(jù)選擇。M=0,8位數(shù)據(jù)幀
//||+------RSRC---接收器源選擇
//|+-------SCISWAI等待模式中SCI停止
//+--------LOOPS---循環(huán)模式選擇,LOOPS=0,全雙工
//允許發(fā)送,允許接收,查詢方式收發(fā)
SCI_C2(SCINo)=0b00001100;//SCI控制寄存器2//|||||||+-SBK---發(fā)送中止字符//||||||+--RWU---接收器喚醒控制
//|||||+---RE---接收器使能,RE=1,接收器打開(kāi)
//||||+----TE---發(fā)送器使能,TE=1,發(fā)送器打開(kāi)
//|||+-----ILIE---閑置線路中斷使能
//||+------RIE---接收器中斷使能
//|+-------TCIE---發(fā)送完成中斷使能//+--------TIE---發(fā)送中斷使能1、SCI構(gòu)件的初始化功能函數(shù):SCIInit2、SCI構(gòu)件單字節(jié)發(fā)送功能函數(shù):SCISend1
//函數(shù)名:SCISend1*//功能:串行發(fā)送1個(gè)字節(jié)*//參數(shù):uint8SCINo:第SCINo個(gè)SCI模塊,其中SCINo取值為1,2*//uint8ch:要發(fā)送的字節(jié)*//返回:無(wú)*//說(shuō)明:SCINo=1表示使用SCI1模塊,依此類推*//----------------------------------------------------------------------------------------*voidSCISend1(uint8SCINo,uint8ch){……
while(!(SCI_S1(SCINo)&0b1000000));
SCI_D(SCINo)=ch;
}3、SCI構(gòu)件的多字節(jié)發(fā)送功能函數(shù):SCISendN//功能:串行發(fā)送N個(gè)字節(jié)*//參數(shù):uint8SCINo:第SCINo個(gè)SCI模塊,其中SCINo取值為1,2*//uint16n:發(fā)送的字節(jié)數(shù)*//uint8ch[]:待發(fā)送的數(shù)據(jù)*//返回:無(wú)*//說(shuō)明:SCINo=1表示使用SCI1模塊,依此類推*//調(diào)用了SCISend1函數(shù)
*voidSCISendN(uint8SCINo,uint16n,uint8ch[]){uint16i;
......for(i=0;i<n;i++) SCISend1(SCINo,ch[i]);}4、SCI構(gòu)件的單字節(jié)接收功能函數(shù):SCIRe1uint8SCIRe1(uint8SCINo,uint8*p){……for(k=0;k<0xfbbb;k++)//有時(shí)間限制
if(
(SCI_S1(SCINo)&0b00100000)!=0)
{i=SCI_D(SCINo);//讀取接收數(shù)據(jù)*p=0x00;//接收成功break;}
if(k>=0xfbbb)
{i=0xff; *p=0x01;//接受失敗}returni;}5、SCI構(gòu)件的多字節(jié)接收功能函數(shù):SCIReNuint8SCIReN(uint8SCINo,uint16n,uint8ch[]){……uint8fp;//接收標(biāo)志……while(m<n){ch[m]=SCIRe1(SCINo,&fp);
if(fp==1) {return1;//接收失敗} m++;}return0;//接收成功 }
6、SCI構(gòu)件的測(cè)試工程main.c#include"Includes.h"voidmain(void){//1主程序使用的變量定義
uint8SerialBuff[]="Hello!World!";//初始化存放接收數(shù)據(jù)的數(shù)組
uint8mSCIReflag=0;//串口接收標(biāo)志
uint32mRuncount=0;//運(yùn)行計(jì)數(shù)器
//2關(guān)中斷
DisableInterrupt();//禁止總中斷
//3芯片初始化
MCUInit();//4模塊初始化
Light_Init(Light_Run_PORT,Light_Run,Light_OFF);//指示燈初始化
SCIInit(SCI_NUM_1,SYSTEM_CLOCK,9600);//串行口初始化
//5主程序向PC機(jī)發(fā)送歡迎詞
SCISendN(SCI_NUM_1,13,SerialBuff);//串口發(fā)送“HelloWorld!”//6主循環(huán)
while(1){//1主循環(huán)計(jì)數(shù)到一定的值,使指示燈的亮、暗狀態(tài)切換
mRuncount++;if(mRuncount>=3){Light_Change(Light_Run_PORT,Light_Run);//指示燈的亮、暗狀態(tài)切換
mRuncount=0;}//2主循環(huán)執(zhí)行的任務(wù)
mSCIReflag=SCIReN(SCI_NUM_1,1,SerialBuff);//等待接收1個(gè)數(shù)據(jù)
if(mSCIReflag==0){SCISendN(SCI_NUM_1,1,SerialBuff);}//發(fā)送接到的數(shù)據(jù)
}}6、SCI構(gòu)件的測(cè)試工程main.c5.3.4SCI構(gòu)件的測(cè)試工程串口調(diào)試工具軟件界面5.4AW60的中斷源與第一個(gè)帶有中斷的編程實(shí)例5.4.1中斷處理的相關(guān)基本概念中斷的含義中斷—來(lái)自CPU外圍設(shè)備或內(nèi)部條件的強(qiáng)行任務(wù)切換請(qǐng)求。中斷服務(wù)例程ISR—中斷服務(wù)子程序,完成相關(guān)的處理任務(wù)。中斷源與中斷向量表
中斷源—引起CPU產(chǎn)生中斷的外部器件。
中斷向量—ISR的入口地址。
中斷向量表—存放中斷向量的一段連續(xù)的存儲(chǔ)區(qū)域。中斷優(yōu)先級(jí)
若CPU在執(zhí)行程序過(guò)程中,有兩個(gè)以上中斷請(qǐng)求同時(shí)發(fā)生,則優(yōu)先級(jí)最高的中斷得到最先響應(yīng)??善帘沃袛嗯c不可屏蔽中斷
可屏蔽中斷—可通過(guò)程序設(shè)置的方式使CPU不響應(yīng)該中斷。
不可屏蔽中斷—不能通過(guò)程序方式關(guān)閉的中斷。5.4AW60的中斷源與第一個(gè)帶有中斷的編程實(shí)例中斷處理的一般過(guò)程第1步:保存現(xiàn)場(chǎng)。將CPU內(nèi)部寄存器的內(nèi)容壓入堆棧。第2步:根據(jù)中斷源,找到中斷向量。第3步:從中斷向量表中取一個(gè)“字”(ISR的入口地址),送給程序計(jì)數(shù)器PC。執(zhí)行ISR。第4步:中斷返回。從堆棧中恢復(fù)CPU內(nèi)部寄存器的內(nèi)容,返回中斷前的程序繼續(xù)執(zhí)行。5.4AW60的中斷源與第一個(gè)帶有中斷的編程實(shí)例中斷處理過(guò)程執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回中斷服務(wù)5.4.2AW60的中斷源與中斷向量表
AW60有26個(gè)中斷源。按優(yōu)先級(jí)從高到低的順序分別是:復(fù)位中斷(1個(gè))、SWI指令中斷(1個(gè))、引腳中斷(1個(gè))、低電壓檢測(cè)中斷(1個(gè))、ICG中斷(1個(gè))、定時(shí)器中斷(10個(gè))、SPI中斷(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)輸服務(wù)合同(2篇)
- 少先隊(duì)課件模板
- 推敲課件蘇教版
- 古詩(shī)詞誦讀《燕歌行并序》-高二語(yǔ)文大單元教學(xué)同步備課(統(tǒng)編版選擇性必修中冊(cè))
- 第14課 《背影》-八年級(jí)語(yǔ)文上冊(cè)同步備課精講(統(tǒng)編版)
- 螞蟻 故事 課件
- 西南林業(yè)大學(xué)《比較文學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《建筑信息模型》2022-2023學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《機(jī)械原理》2022-2023學(xué)年第一學(xué)期期末試卷
- 溫度變化對(duì)化學(xué)平衡的移動(dòng)影響
- 《電力建設(shè)施工企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化實(shí)施規(guī)范》
- 室內(nèi)環(huán)境檢測(cè)培訓(xùn)題庫(kù)(含答案和解題分析)
- 如何開(kāi)展指向?qū)W科核心素養(yǎng)的大單元設(shè)計(jì)
- 三叉神經(jīng)微血管減壓術(shù)的手術(shù)配合專家講座
- MOOC 財(cái)務(wù)管理-上海對(duì)外經(jīng)貿(mào)大學(xué) 中國(guó)大學(xué)慕課答案
- GB/T 43638-2024周圍神經(jīng)功能障礙法醫(yī)臨床鑒定技術(shù)規(guī)范
- 國(guó)旗國(guó)徽國(guó)歌知識(shí)講座
- 露營(yíng)基地合同協(xié)議書(shū)
- 2024雨量雷達(dá)監(jiān)測(cè)系統(tǒng)技術(shù)導(dǎo)則
- 心理危機(jī)評(píng)估的自我保護(hù)與邊界管理
- 數(shù)學(xué)應(yīng)用題解題思路教學(xué)設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論