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