《面向物聯(lián)網(wǎng)的嵌入式系統(tǒng)開發(fā)-10-CC2530串口通信技術(shù)應(yīng)用開發(fā)課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《面向物聯(lián)網(wǎng)的嵌入式系統(tǒng)開發(fā)-10-CC2530串口通信技術(shù)應(yīng)用開發(fā)課件(20頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、,15:33,/,#,CC2530,和,STM32,嵌入式接口技術(shù)開發(fā),3.7 CC2530,串口通信技術(shù)應(yīng)用開發(fā),串口,的功能及,類別,CC2530,單片機(jī)串口的,使用,項(xiàng)目場景,說明,項(xiàng)目實(shí)踐,串口概念,串行接口簡稱串口,也稱串行通信接口或串行通訊接口(通常指,COM,接口),是采用串行通信方式的擴(kuò)展接口,。,串行,接口,(Serial Interface),是指數(shù)據(jù)一位一位地順序傳送,其特點(diǎn)是通信線路簡單,只要一對(duì)傳輸線就可以實(shí)現(xiàn)雙向通信(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用于遠(yuǎn)距離通信,但傳送速度較慢。,串口的接口標(biāo)準(zhǔn),同步串行接口(英文:,Synchronou
2、sSerialInterface,,,SSI,)是一種常用的工業(yè)用通信接口。,異步串行是指,UART,(,Universal,Asynchronous Receiver/Transmitter,),通用異步接收,/,發(fā)送。,UART,是一個(gè)并行輸入成為串行輸出的芯片,通常集成在主板上。,UART,包含,TTL,電平的串口和,RS232,電平的串口。,TTL,電平是,3.3V,的,而,RS232,是負(fù)邏輯電平,它定義,+5+12V,為低電平,而,-12-5V,為高,電平,。,RS-232,RS-232,也,稱標(biāo)準(zhǔn)串口,最常用的一種串行通訊接口,。,傳統(tǒng)的,RS-232-C,接口標(biāo)準(zhǔn)有,22,根線
3、,采用標(biāo)準(zhǔn),25,芯,D,型插頭座(,DB25,),后來使用簡化為,9,芯,D,型插座(,DB9,),現(xiàn)在應(yīng)用中,25,芯插頭座已很少采用。,RS-232,采取不平衡傳輸方式,即所謂單端通訊。由于其發(fā)送電平與接收電平的差僅為,2V,至,3V,左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約,15,米,最高速率為,20kb/s,。,RS-422,標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”,它定義了接口電路的特性。典型的,RS-422,是四線接口。實(shí)際上還有一根信號(hào)地線,共,5,根線,。,RS-422,支持點(diǎn)對(duì)多的雙向通信。,RS-422,的最大傳輸距離為,1219,米,
4、最大傳輸速率為,10Mb/s,。,RS-485,RS-485,是,從,RS-422,基礎(chǔ)上發(fā)展而來的,所以,RS-485,許多電氣規(guī)定與,RS-422,相仿,。,RS-485,可以采用二線與四線方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信,而采用四線連接時(shí),與,RS-422,一樣只能實(shí)現(xiàn)點(diǎn)對(duì)多的,通信,。,串口通信協(xié)議,串口通信(,Serial Communications,)的概念非常簡單,串口按位(,bit,)發(fā)送和接收字節(jié),。,典型地,串口用于,ASCII,碼字符的傳輸。通信使用,3,根線完成,分別是地線、發(fā)送、接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。,串
5、口,通信的,參數(shù),串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。,波特率,波特率這是一個(gè)衡量符號(hào)傳輸速率的參數(shù)。,數(shù)據(jù)位,數(shù)據(jù)位是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。,停止位,停止位用于表示單個(gè)包的最后一位。,奇偶校驗(yàn)位,奇偶校驗(yàn)位在串口通信中一種簡單的檢錯(cuò)方式。,數(shù)據(jù)流控制,數(shù)據(jù)流控制作用就是當(dāng)接收端的數(shù)據(jù)緩沖區(qū)已滿,無法處理數(shù)據(jù)來時(shí),就發(fā)出,不再接收,的信號(hào),發(fā)送端則停止發(fā)送,直到發(fā)送端收到,可以繼續(xù)發(fā)送,的信號(hào)再發(fā)送數(shù)據(jù)。,硬件數(shù)據(jù)流控制,RTS/CTS,(請求發(fā)送,/,清除發(fā)送)流控制和,DTR/DSR,(數(shù)據(jù)終端就緒,/,數(shù)據(jù)設(shè)置就緒)流控制,軟件數(shù)據(jù)流控制,軟件流控制常通過,XO
6、N/XOFF,來實(shí)現(xiàn)。,CC2530,串口,CC2530,的串口模式中提供異步串行接口功能。在,UART,模式中,串口,接口使用,2,線模式或者含有引腳,RXD,、,TXD,、可選,RTS,和,CTS,的,4,線模式。,UART,模式,的操作具有下列特點(diǎn):,8,位或者,9,位負(fù)載數(shù)據(jù),奇校驗(yàn)、偶校驗(yàn)或者無奇偶校驗(yàn),配置起始位和停止位電平,配置,LSB,或者,MSB,首先傳送,獨(dú)立收發(fā)中斷,獨(dú)立收發(fā),DMA,觸發(fā),奇偶校驗(yàn)和幀校驗(yàn)出錯(cuò)狀態(tài),CC2530,串口配置寄存器介紹,CC2530,單片機(jī)對(duì)于每個(gè),USART,有,5,個(gè)配置寄存器來綜合配置,CC2530,串口特性,。,UxCSR,(,USA
7、RTx,控制和狀態(tài)寄存器),UxUCR,(,USARTx UART,控制寄存器),UxGCR,(,USARTx,通用控制寄存器),UxBUF,(,USART x,接收,/,發(fā)送數(shù)據(jù)緩沖寄存器),UxBAUD,(,USART x,波特率控制寄存器),項(xiàng)目,場景,生產(chǎn)車間往往都是有金屬阻隔、電磁環(huán)境復(fù)雜不利于無線信號(hào)的通信,只有抗干擾能力較強(qiáng)的有線信號(hào)才能保證數(shù)據(jù)的傳輸穩(wěn)定,同時(shí)中央控制臺(tái)又需要一次控制多個(gè)設(shè)備,硬件上設(shè)定多個(gè)控制端是不現(xiàn)實(shí)的。為了解決這種問題實(shí)現(xiàn)工廠設(shè)備與控制臺(tái)的交互就需要以一種可靠的通信方式來建立連接,串口以實(shí)現(xiàn)簡單、數(shù)據(jù)傳輸穩(wěn)定、可遠(yuǎn)距離傳輸數(shù)據(jù)、抗干擾能力強(qiáng)且一般電子設(shè)備都
8、有這種接口全可以滿足工業(yè)需求,串口就在工業(yè)領(lǐng)域得到了廣泛的使用。,任務(wù),目標(biāo),通過,編輯代碼使用,CC2530,微處理器的串口外設(shè),將配置好的串口外設(shè)通過串口線與,PC,機(jī)連接,打開,PC,機(jī)上的串口上位機(jī),通過,PC,機(jī)上的串口上位機(jī)向,CC2530,微處理器發(fā)送數(shù)據(jù)。,CC2530,微處理器接收到數(shù)據(jù)后回顯,,CC2530,微處理器當(dāng)通過串口接收到了特定的字符時(shí)向,PC,機(jī)打印接收到的所有數(shù)據(jù),以此實(shí)現(xiàn),CC2530,微處理器與,PC,機(jī)的交互。,項(xiàng)目分析,串口,配置,,首先需要通過,P0SEL,寄存器將管腳屬性配置為外設(shè)模式,然后通過,PERCFG,配置寄存器選擇要配置的串口通道,接下來
9、選擇,P0,為串口優(yōu)先并將雙線總線模式配置為串口模式,最后配置串口波特率停止位和奇偶校驗(yàn)位,。,程序的接收數(shù)據(jù)則只需要對(duì)接收狀態(tài)寄存器位,URX0IF,進(jìn)行識(shí)別,如果接受到數(shù)據(jù),則可直接從,U0DBUF,寄存器中獲取接收到的數(shù)據(jù)。程序的發(fā)送數(shù)據(jù)與接收數(shù)據(jù)方式的操作順序正好相反,首先向,U0DBUF,寄存器寫入要發(fā)送的值,然后等到,UTX0IF,寄存器置位,如果置位則數(shù)據(jù)發(fā)送完成。,程序流程圖,項(xiàng)目實(shí)現(xiàn),串口,始,化程序,如下,:,void uart0_init(unsigned char StopBits,unsigned char Parity),P0SEL|=0 x0C;/,初始化,UAR
10、T0,端口,PERCFG /,選擇,UART0,為可選位置一,P2DIR /P0,優(yōu)先作為串口,0,U0CSR=0 xC0;/,設(shè)置為,UART,模式,而且使能接受器,U0GCR=0 x0A;,U0BAUD=0 x3B;/,波特率設(shè)置為,38400,U0UCR|=StopBits|Parity;/,設(shè)置停止位與奇偶校驗(yàn),項(xiàng)目實(shí)現(xiàn),串口發(fā)送函數(shù),如下,:,void uart_send_char(char ch),U0DBUF=ch;/,將要發(fā)送的數(shù)據(jù)填入發(fā)送緩存寄存器,while(UTX0IF=0);/,等待數(shù)據(jù)發(fā)送完成,UTX0IF=0;/,發(fā)送完成后將數(shù)據(jù)清零,項(xiàng)目實(shí)現(xiàn),串口接收函數(shù):,int uart_recv_char(void),int ch;/,等待數(shù)據(jù)接收完成,while(URX0IF=0);/,提取接受數(shù)據(jù),ch=U0DBUF;,URX0IF=0;/,發(fā)送標(biāo)志位清零,return ch;/,返回獲取到的串口數(shù)據(jù),項(xiàng)目思考,串口通信時(shí)需要配置哪些參數(shù),?,請,列舉幾個(gè)常見的串口實(shí)例?,