版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于ARM的單片機(jī)應(yīng)用及實(shí)踐—GD32案例式教學(xué)USART:(UniversalSynchronous/AsynchronousReceiver/Transmitter)通用同步/異步串行接收/發(fā)送器是一個(gè)全雙工通用同步/異步串行收發(fā)模塊,該接口是一個(gè)高度靈活的串行通信設(shè)備。通用同步異步收發(fā)器(USART)提供了一種靈活的方法來(lái)與使用工業(yè)標(biāo)準(zhǔn)NRZ異步串行數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。通用同步異步收發(fā)器(USART)提供了一個(gè)靈活方便的串行數(shù)據(jù)交換接口,數(shù)據(jù)幀可以通過(guò)全雙工或半雙工,同步或異步的方式進(jìn)行傳輸。USART提供了可編程的波特率發(fā)生器,能對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻產(chǎn)生USART發(fā)送和接收所需的特定頻率。引腳類(lèi)型描述RX輸入接收數(shù)據(jù)
TX輸出I/O(單線(xiàn)模式/智能卡模式)發(fā)送數(shù)據(jù)。當(dāng)USART使能后,若無(wú)數(shù)據(jù)發(fā)送,默認(rèn)為高電平CK輸出用于同步通信的串行時(shí)鐘信號(hào)nCTS輸入硬件流控模式發(fā)送使能信號(hào)nRTS輸出硬件流控模式發(fā)送請(qǐng)求信號(hào)主要特性:NRZ標(biāo)準(zhǔn)格式(Mark/Space)。全雙工異步通信。半雙工單線(xiàn)通信。可編程的波特率產(chǎn)生器:由外設(shè)時(shí)鐘分頻產(chǎn)生,其中USART0/5由PCLK2分頻得到,USART1/2和UART3/4/6/7由PCLK1分頻得到;8或16倍過(guò)采樣;當(dāng)時(shí)鐘頻率為100M,過(guò)采樣為8,最高速度可到12.5MBits/s。完全可編程的串口特性:偶校驗(yàn)位,奇校驗(yàn)位,無(wú)校驗(yàn)位的生成/檢測(cè);數(shù)據(jù)位(8或9位);–產(chǎn)生0.5,1,1.5或者2個(gè)停止位。發(fā)送器和接收器可分別使能。支持硬件Modem流控操作(CTS/RTS)。DMA訪(fǎng)問(wèn)數(shù)據(jù)緩沖區(qū)。LIN斷開(kāi)幀的產(chǎn)生和檢測(cè)。支持紅外數(shù)據(jù)協(xié)議(IrDA)。同步傳輸模式以及為同步傳輸輸出發(fā)送時(shí)鐘。支持兼容ISO7816-3的智能卡接口:字節(jié)模式(T=0);塊模式(T=1);直接和反向轉(zhuǎn)換。多處理器通信:如果地址不匹配,則進(jìn)入靜默模式;通過(guò)線(xiàn)路空閑檢測(cè)或者地址掩碼檢測(cè)從靜默模式喚醒。多種狀態(tài)標(biāo)志:傳輸檢測(cè)標(biāo)志:接收緩沖區(qū)不為空(RBNE),發(fā)送緩沖區(qū)為空(TBE),傳輸完成(TC),忙(BSY);錯(cuò)誤檢測(cè)標(biāo)志:過(guò)載錯(cuò)誤(ORERR),噪聲錯(cuò)誤(NERR),幀格式錯(cuò)誤(FERR),奇偶校驗(yàn)錯(cuò)誤(PERR);硬件流控操作標(biāo)志:CTS變化(CTSF);LIN模式標(biāo)志:LIN斷開(kāi)檢測(cè)(LBDF);多處理器通信模式標(biāo)志:IDLE幀檢測(cè)(IDLEF);智能卡模式標(biāo)志:塊結(jié)束(EBF)和接收超時(shí)(RTF);若相應(yīng)的中斷使能,這些事件發(fā)生將會(huì)觸發(fā)中斷。USART數(shù)據(jù)幀開(kāi)始于起始位,結(jié)束于停止位。USART_CTL0寄存器中WL位可以設(shè)置數(shù)據(jù)長(zhǎng)度。將USART_CTL0寄存器中PCEN置位,最后一個(gè)數(shù)據(jù)位可以用作校驗(yàn)位。若WL位為0,第七位為校驗(yàn)位。若WL位置1,第八位為校驗(yàn)位。USART_CTL0寄存器中PM位用于選擇校驗(yàn)位的計(jì)算方法。在一個(gè)空閑幀中,所有位都為1。數(shù)據(jù)幀長(zhǎng)度與正常USART數(shù)據(jù)幀長(zhǎng)度相同。緊隨停止位后多個(gè)低電平為中斷幀。USART數(shù)據(jù)幀的傳輸速度由PCLK時(shí)鐘頻率,波特率發(fā)生器的配置,以及過(guò)采樣模式共同決定。
USART發(fā)送步驟軟件操作按以下流程進(jìn)行:在USART_CTL0寄存器中置位UEN位,使能USART;通過(guò)USART_CTL0寄存器的WL設(shè)置字長(zhǎng);在USART_CTL1寄存器中寫(xiě)STB[1:0]位來(lái)設(shè)置停止位的長(zhǎng)度;如果選擇了多級(jí)緩存通信方式,應(yīng)該在USART_CTL2寄存器中使能DMA(DENT位);在USART_BAUD寄存器中設(shè)置波特率;在USART_CTL0寄存器中設(shè)置TEN位;等待TBE置位;向USART_DATA寄存器寫(xiě)數(shù)據(jù);若DMA未使能,每發(fā)送一個(gè)字節(jié)都需重復(fù)步驟7-8;等待TC=1,發(fā)送完成。USART接收器使能按以下步驟進(jìn)行:在USART_CTL0寄存器中置位UEN位,使能USART;寫(xiě)USART_CTL0寄存器的WL去設(shè)置字長(zhǎng);在USART_CTL1寄存器中寫(xiě)STB[1:0]位來(lái)設(shè)置停止位的長(zhǎng)度;如果選擇了多級(jí)緩存通信方式,應(yīng)該在USART_CTL2寄存器中使能DMA(DENR位);在USART_BAUD寄存器中設(shè)置波特率;在USART_CTL0中設(shè)置REN位。采用DMA方式實(shí)現(xiàn)USART數(shù)據(jù)發(fā)送配置步驟采用DMA方式實(shí)現(xiàn)USART數(shù)據(jù)接收配置步驟硬件流控制功能通過(guò)nCTS和nRTS引腳來(lái)實(shí)現(xiàn)。通過(guò)將USART_CTL2寄存器中RTSEN位置1來(lái)使能RTS流控,將USART_CTL2寄存器中CTSEN位置1來(lái)使能CTS流控。RTS流控USART接收器輸出nRTS,它用于反映接收緩沖區(qū)狀態(tài)。當(dāng)一幀數(shù)據(jù)接收完成,nRTS變成高電平,這樣是為了阻止發(fā)送器繼續(xù)發(fā)送下一幀數(shù)據(jù)。當(dāng)接收緩沖區(qū)滿(mǎn)時(shí),nRTS保持高電平,可以通過(guò)讀USART_DATA寄存器來(lái)清零。CTS流控USART發(fā)送器監(jiān)視nCTS輸入引腳來(lái)決定數(shù)據(jù)幀是否可以發(fā)送。如果USART_STAT0寄存器中TBE位是0且nCTS為低電平,發(fā)送器發(fā)送數(shù)據(jù)幀。在發(fā)送期間,若nCTS信號(hào)變?yōu)楦唠娖?,發(fā)送器將會(huì)在當(dāng)前數(shù)據(jù)幀發(fā)送完成后停止發(fā)送。
中斷事件事件標(biāo)志控制寄存器使能控制位發(fā)送數(shù)據(jù)寄存器空TBEUSART_CTL0TBEIECTS標(biāo)志CTSFUSART_CTL2CTSIE發(fā)送結(jié)束TCUSART_CTL0TCIE接收到的數(shù)據(jù)可以讀取RBNEUSART_CTL0RBNEIE檢測(cè)到過(guò)載錯(cuò)誤ORERR檢測(cè)到線(xiàn)路空閑IDLEFUSART_CTL0IDLEIE在發(fā)送給中斷控制器之前,所有的中斷事件是邏輯或的關(guān)系。因此在任何時(shí)候USART只能向控制器產(chǎn)生一個(gè)中斷請(qǐng)求。不過(guò)軟件可以在一個(gè)中斷服務(wù)程序里處理多個(gè)中斷事件。習(xí)題USART由哪些外部信號(hào)組成?簡(jiǎn)述USART波特率的計(jì)算方法?簡(jiǎn)述USART過(guò)采樣過(guò)程?硬件流控信號(hào)有哪些?他們的作用是什么?USART中斷事件有哪些?I2C接口模塊實(shí)現(xiàn)了I2C協(xié)議的標(biāo)速模式和快速模式,具備CRC計(jì)算和校驗(yàn)功能、支持SMBus(系統(tǒng)管理總線(xiàn))和PMBus(電源管理總線(xiàn)),此外還支持多主機(jī)I2C總線(xiàn)架構(gòu)。I2C接口模塊也支持DMA模式,可有效減輕CPU的負(fù)擔(dān)。I2C(Inter-IntegratedCircuit)總線(xiàn)是一種由PHILIPS公司開(kāi)發(fā)的兩線(xiàn)式串行總線(xiàn),用于連接微控制器及其外圍設(shè)備。I2C(內(nèi)部集成電路總線(xiàn))模塊提供了符合工業(yè)標(biāo)準(zhǔn)的兩線(xiàn)串行制接口,可用于MCU和外部I2C設(shè)備的通訊。I2C總線(xiàn)使用兩條串行線(xiàn):串行數(shù)據(jù)線(xiàn)SDA和串行時(shí)鐘線(xiàn)SCL。主要特征并行總線(xiàn)至I2C總線(xiàn)協(xié)議的轉(zhuǎn)換及接口;同一接口既可實(shí)現(xiàn)主機(jī)功能又可實(shí)現(xiàn)從機(jī)功能;主從機(jī)之間的雙向數(shù)據(jù)傳輸;支持7位和10位的地址模式和廣播尋址;支持I2C多主機(jī)模式;支持標(biāo)速(最高100kHz)和快速(最高400kHz);從機(jī)模式下可配置的SCL主動(dòng)拉低;支持DMA模式;兼容SMBus2.0和PMBus;兩個(gè)中斷:字節(jié)成功發(fā)送中斷和錯(cuò)誤事件中斷;可選擇的PEC(報(bào)文錯(cuò)誤校驗(yàn))生成和校驗(yàn);支持SAM_V模式;支持?jǐn)?shù)字和模擬噪聲濾波器。I2C模塊有兩條接口線(xiàn):串行數(shù)據(jù)SDA線(xiàn)和串行時(shí)鐘SCL線(xiàn)。連接到總線(xiàn)上的設(shè)備通過(guò)這兩根線(xiàn)互相傳遞信息。SDA和SCL都是雙向線(xiàn),通過(guò)一個(gè)電流源或者上拉電阻接到電源正極。當(dāng)總線(xiàn)空閑時(shí),兩條線(xiàn)都是高電平。連接到總線(xiàn)的設(shè)備輸出極必須帶開(kāi)漏或者開(kāi)集,以提供線(xiàn)與功能。I2C總線(xiàn)上的數(shù)據(jù)在標(biāo)準(zhǔn)模式下可以達(dá)到100kbit/s,在快速模式下可以達(dá)到400kbit/s。由于I2C總線(xiàn)上可能會(huì)連接不同工藝的設(shè)備(CMOS,NMOS,雙極性器件),邏輯‘0’和邏輯‘1’的電平并不是固定的,取決于VDD的實(shí)際電平。時(shí)鐘信號(hào)的高電平期間
SDA線(xiàn)上的數(shù)據(jù)必須穩(wěn)定。只有在時(shí)鐘信號(hào)
SCL變低的時(shí)候數(shù)據(jù)線(xiàn)SDA的電平狀態(tài)才能跳變(如圖
20-2.
數(shù)據(jù)有效性)。每個(gè)數(shù)據(jù)比特傳輸需要一個(gè)時(shí)鐘脈沖。所有的數(shù)據(jù)傳輸起始于一個(gè)
START(S)結(jié)束于一個(gè)
STOP(P)(參見(jiàn)圖
20-3.開(kāi)始和停止?fàn)顟B(tài))。START起始位定義為,在
SCL為高時(shí),SDA線(xiàn)上出現(xiàn)一個(gè)從高到低的電平轉(zhuǎn)換。STOP結(jié)束位定義為,在
SCL為高時(shí),SDA線(xiàn)上出現(xiàn)一個(gè)從低到高的電平轉(zhuǎn)換。圖20-67位地址的I2C通訊流程圖20-710位地址的I2C通訊流程(主機(jī)發(fā)送)習(xí)題I2C總線(xiàn)由哪些信號(hào)線(xiàn)組成?他們的功能是什么?I2C總線(xiàn)數(shù)據(jù)有效性如何判斷?I2C總線(xiàn)的起始信號(hào)和停止信號(hào)是什么?簡(jiǎn)述I2C總線(xiàn)的發(fā)送流程?簡(jiǎn)述I2C總線(xiàn)的接收流程?SPI/I2S模塊可以通過(guò)SPI協(xié)議或I2S音頻協(xié)議與外部設(shè)備進(jìn)行通信。串行外設(shè)接口(SerialPeripheralInterface,縮寫(xiě)為SPI)提供了基于SPI協(xié)議的數(shù)據(jù)發(fā)送和接收功能,可以工作于主機(jī)或從機(jī)模式。SPI接口支持具有硬件CRC計(jì)算和校驗(yàn)的全雙工和單工模式。SPI5還支持SPI四線(xiàn)主機(jī)模式。片上音頻接口(Inter-ICSound,縮寫(xiě)為I2S)支持四種音頻標(biāo)準(zhǔn),分別是I2S飛利浦標(biāo)準(zhǔn)、MSB對(duì)齊標(biāo)準(zhǔn)、LSB對(duì)齊標(biāo)準(zhǔn)和PCM標(biāo)準(zhǔn)。它可以在四種模式下運(yùn)行,包括主機(jī)發(fā)送模式、主機(jī)接收模式、從機(jī)發(fā)送模式和從機(jī)接收模式。通過(guò)使用附加的I2S模塊:I2S1_ADD和I2S2_ADD、SPI1和SPI2支持I2S全雙工模式。簡(jiǎn)介具有全雙工和單工模式的主從操作16位寬度,獨(dú)立的發(fā)送和接收緩沖區(qū)8位或16位數(shù)據(jù)幀格式低位在前或高位在前的數(shù)據(jù)位順序軟件和硬件NSS管理硬件CRC計(jì)算、發(fā)送和校驗(yàn)發(fā)送和接收支持DMA模式支持SPITI模式支持SPI四線(xiàn)功能的主機(jī)模式(只有SPI5)SPI主要特性具有發(fā)送和接收功能的主從操作具有全雙工模式的主從操作(僅在SPI1和SPI2中)支持四種I2S音頻標(biāo)準(zhǔn):飛利浦標(biāo)準(zhǔn),MSB對(duì)齊標(biāo)準(zhǔn),LSB對(duì)齊標(biāo)準(zhǔn)和PCM標(biāo)準(zhǔn)數(shù)據(jù)長(zhǎng)度可以為16位,24位和32位通道長(zhǎng)度為16位或32位16位緩沖區(qū)用于發(fā)送和接收通過(guò)I2S時(shí)鐘分頻器,可以得到8kHz到192kHz的音頻采樣頻率可編程空閑狀態(tài)時(shí)鐘極性可以輸出主時(shí)鐘(MCK)發(fā)送和接收支持DMA功能I2S主要特性SPI結(jié)構(gòu)框圖SPI結(jié)構(gòu)框圖SPI信號(hào)線(xiàn)描述——常規(guī)配置引腳名稱(chēng)方向描述
SCK
I/O主機(jī):SPI時(shí)鐘輸出從機(jī):SPI時(shí)鐘輸入
MISO
I/O主機(jī):數(shù)據(jù)接收線(xiàn)從機(jī):數(shù)據(jù)發(fā)送線(xiàn)主機(jī)雙向線(xiàn)模式:不使用從機(jī)雙向線(xiàn)模式:數(shù)據(jù)發(fā)送和接收線(xiàn)
MOSI
I/O主機(jī):數(shù)據(jù)發(fā)送線(xiàn)從機(jī):數(shù)據(jù)接收線(xiàn)主機(jī)雙向線(xiàn)模式:數(shù)據(jù)發(fā)送和接收線(xiàn)從機(jī)雙向線(xiàn)模式:不使用
NSS
I/O軟件NSS模式:不使用主機(jī)硬件NSS模式:為NSS輸出,NSSDRV=1時(shí),為單主機(jī)模式,NSSDRV=0時(shí),為多主機(jī)模式。從機(jī)硬件NSS模式:為NSS輸入,作為從機(jī)的片選信號(hào)。SPI信號(hào)線(xiàn)描述——SPI四線(xiàn)配置引腳名稱(chēng)方向描述SCKOSPI時(shí)鐘輸出MOSII/O發(fā)送或接收數(shù)據(jù)0線(xiàn)MISOI/O發(fā)送或接收數(shù)據(jù)1線(xiàn)IO2I/O發(fā)送或接收數(shù)據(jù)2線(xiàn)IO3I/O發(fā)送或接收數(shù)據(jù)3線(xiàn)NSSONSS輸出SPI默認(rèn)配置為單路模式,當(dāng)SPI_QCTL中的QMOD位置1時(shí),配置為SPI四線(xiàn)模式(只適用于SPI5)。SPI四線(xiàn)模式只能工作在主機(jī)模式。通過(guò)配置SPI_QCTL中的IO23_DRV位,在常規(guī)非四線(xiàn)SPI模式下,軟件可以驅(qū)動(dòng)IO2引腳和IO3引腳為高電平。在SPI四線(xiàn)模式下,SPI通過(guò)以下6個(gè)引腳與外部設(shè)備連接:
SPI功能描述——常規(guī)模式下的SPI時(shí)序SPI_CTL0寄存器中的CKPL位和CKPH位決定了SPI時(shí)鐘和數(shù)據(jù)信號(hào)的時(shí)序。CKPL位決定了空閑狀態(tài)時(shí)SCK的電平,CKPH位決定了第一個(gè)或第二個(gè)時(shí)鐘跳變沿為有效采樣邊沿。在TI模式下,這兩位沒(méi)有意義。在常規(guī)模式中,通過(guò)SPI_CTL0中的FF16位配置數(shù)據(jù)長(zhǎng)度,當(dāng)FF16=1時(shí),數(shù)據(jù)長(zhǎng)度為16位,否則為8位。在SPI四線(xiàn)模式下,數(shù)據(jù)幀長(zhǎng)度固定為8位。通過(guò)設(shè)置SPI_CTL0中的LF位可以配置數(shù)據(jù)順序,當(dāng)LF=1時(shí),SPI先發(fā)送LSB位,當(dāng)LF=0時(shí),則先發(fā)送MSB位。在TI模式中,數(shù)據(jù)順序固定為先發(fā)MSB位。常規(guī)模式下的SPI時(shí)序圖
SPI功能描述——四線(xiàn)模式下的SPI時(shí)序四線(xiàn)模式下的SPI時(shí)序圖(CKPL=1,CKPH=1,LF=0)
SPI功能描述——NSS功能從機(jī)模式
當(dāng)配置為從機(jī)模式(MSTMOD=0)時(shí),在硬件NSS模式(SWNSSEN=0)下,SPI從NSS引腳獲取NSS電平,在軟件NSS模式(SWNSSEN=1)下,SPI根據(jù)SWNSS位得到NSS電平。只有當(dāng)NSS為低電平時(shí),才能發(fā)送或接收數(shù)據(jù)。在軟件NSS模式下,不使用NSS引腳。模式寄存器配置描述從機(jī)硬件NSS模式MSTMOD=0SWNSSEN=0SPI從機(jī)NSS電平從NSS引腳獲取。從機(jī)軟件NSS模式MSTMOD=0SWNSSEN=1SPI從機(jī)NSS電平由SWNSS位決定。SWNSS=0:NSS電平為低SWNSS=1:NSS電平為高主機(jī)模式
在主機(jī)模式(MSTMOD=1)下,如果應(yīng)用程序使用多主機(jī)連接方式,NSS可以配置為硬件輸入模式(SWNSSEN=0,NSSDRV=0)或者軟件模式(SWNSSEN=1)。一旦NSS引腳(在硬件NSS模式下)或SWNSS位(在軟件NSS模式下)被拉低,SPI將自動(dòng)進(jìn)入從機(jī)模式,并且產(chǎn)生主機(jī)配置錯(cuò)誤,CONFERR位置1。
如果應(yīng)用程序希望使用NSS引腳控制SPI從設(shè)備,NSS應(yīng)該配置為硬件輸出模式(SWNSSEN=0,NSSDRV=1)。使能SPI之后,NSS保持高電平,當(dāng)發(fā)送或接收過(guò)程開(kāi)始時(shí),NSS變?yōu)榈碗娖?。?yīng)用程序可以使用一個(gè)通用I/O口作為NSS引腳,以實(shí)現(xiàn)更加靈活的NSS應(yīng)用。模式寄存器配置描述主機(jī)硬件NSS輸出模式MSTMOD=1SWNSSEN=0NSSDRV=1適用于單主機(jī)模式,主機(jī)使用NSS引腳控制SPI從設(shè)備,此時(shí)NSS配置為硬件輸出模式。使能SPI后NSS為低電平。主機(jī)硬件NSS輸入模式MSTMOD=1SWNSSEN=0NSSDRV=0適用于多主機(jī)模式,此時(shí)NSS配置為硬件輸入模式,一旦NSS引腳被拉低,SPI將自動(dòng)進(jìn)入從機(jī)模式,并且產(chǎn)生主機(jī)配置錯(cuò)誤,CONFERR位置1。主機(jī)軟件NSS模式MSTMOD=1SWNSSEN=1SWNSS=0NSSDRV:不要求適用于多主機(jī)模式,一旦SWNSS=0,SPI將自動(dòng)進(jìn)入從機(jī)模式,并且產(chǎn)生主機(jī)配置錯(cuò)誤,CONFERR位置1。MSTMOD=1SWNSSEN=1SWNSS=1NSSDRV:不要求從機(jī)可以使用硬件或軟件NSS模式
SPI功能描述——SPI運(yùn)行模式模式描述寄存器配置使用的數(shù)據(jù)引腳MFD全雙工主機(jī)模式MSTMOD=1、RO=0、BDEN=0BDOEN:不要求MOSI:發(fā)送MISO:接收MTU單向線(xiàn)連接主機(jī)發(fā)送模式MSTMOD=1、RO=0、BDEN=0BDOEN:不要求MOSI:發(fā)送MISO:不使用MRU單向線(xiàn)連接主機(jī)接收模式MSTMOD=1、RO=1、BDEN=0BDOEN:不要求MOSI:不使用MISO:接收MTB雙向線(xiàn)連接主機(jī)發(fā)送模式MSTMOD=1、RO=0、BDEN=1BDOEN=1MOSI:發(fā)送MISO:不使用MRB雙向線(xiàn)連接主機(jī)接收模式MSTMOD=1、RO=0、BDEN=1BDOEN=0MOSI:接收MISO:不使用SFD全雙工從機(jī)模式MSTMOD=0、RO=0、BDEN=0BDOEN:不要求MOSI:接收MISO:發(fā)送STU單向線(xiàn)連接從機(jī)發(fā)送模式MSTMOD=0、RO=0、BDEN=0BDOEN:不要求MOSI:不使用MISO:發(fā)送SRU單向線(xiàn)連接從機(jī)接收模式MSTMOD=0、RO=1、BDEN=0BDOEN:不要求MOSI:接收MISO:不使用STB雙向線(xiàn)連接從機(jī)發(fā)送模式MSTMOD=0、RO=0、BDEN=1BDOEN=1MOSI:不使用MISO:發(fā)送SRB雙向線(xiàn)連接從機(jī)接收模式MSTMOD=0、RO=0、BDEN=1BDOEN=0MOSI:不使用MISO:接收I2S結(jié)構(gòu)框圖I2S結(jié)構(gòu)框圖I2S運(yùn)行模式運(yùn)行模式I2S_MCKI2S_CKI2S_WSI2S_SDI2S_ADD_SD(2)主機(jī)發(fā)送輸出或NU(1)輸出輸出輸出NU(1)主機(jī)接收輸出或NU(1)輸出輸出輸入NU(1)從機(jī)發(fā)送輸入或NU(1)輸入輸入輸出NU(1)從機(jī)接收輸入或NU(1)輸入輸入輸入NU(1)全雙工輸出或NU(1)輸出輸出輸出或輸入輸入或輸出中斷事件描述清除方式中斷使能位TBE發(fā)送緩沖區(qū)空寫(xiě)SPI_DATA寄存器TBEIERBNE接收緩沖區(qū)非空讀SPI_DATA寄存器RBNEIETXURERR發(fā)送欠載錯(cuò)誤讀SPI_STAT寄存器ERRIERXORERR接收過(guò)載錯(cuò)誤讀SPI_DATA寄存器,然后再讀SPI_STAT寄存器FERRI2S幀錯(cuò)誤讀SPI_STAT寄存器I2S中斷1.串行外設(shè)接口(SPI)和片上音頻接口(I2S)分別支持哪些運(yùn)行模式?2.簡(jiǎn)述SPI常規(guī)配置下各引腳的作用(SCK、MISO、MOSI、NSS)。
習(xí)題CAN是控制器域網(wǎng)(ControllerAreaNetwork,CAN)的簡(jiǎn)稱(chēng),是由研發(fā)和生產(chǎn)汽車(chē)電子產(chǎn)品著稱(chēng)的德國(guó)BOSCH公司開(kāi)發(fā)了的,并最終成為國(guó)際標(biāo)準(zhǔn)(ISO11898)。是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線(xiàn)之一。GD32F4xx系列微控制器最高可以支持兩路CAN2.0B控制器接口,每一路CAN接口最高波特率可達(dá)到1Mbps。本章介紹對(duì)CAN總線(xiàn)的功能進(jìn)行介紹。CAN(ControllerAreaNetwork)總線(xiàn)是一種可以在無(wú)主機(jī)情況下實(shí)現(xiàn)微處理器或者設(shè)備之間相互通信的總線(xiàn)標(biāo)準(zhǔn)。CAN總線(xiàn)控制器作為CAN網(wǎng)絡(luò)接口,遵循CAN總線(xiàn)協(xié)議2.0A、2.0B、ISO11891-1:2015和BOSCHCAN-FD規(guī)范。CAN總線(xiàn)控制器可以處理總線(xiàn)上的數(shù)據(jù)收發(fā)并具有28個(gè)過(guò)濾器,過(guò)濾器用于篩選并接收用戶(hù)需要的消息。用戶(hù)可以通過(guò)3個(gè)發(fā)送郵箱將待發(fā)送數(shù)據(jù)傳輸至總線(xiàn),郵箱發(fā)送的順序由發(fā)送調(diào)度器決定。并通過(guò)2個(gè)深度為3的接收FIFO獲取總線(xiàn)上的數(shù)據(jù),接收FIFO的管理完全由硬件控制。同時(shí)CAN總線(xiàn)控制器硬件支持時(shí)間觸發(fā)通信(Time-triggercommunication)功能。主要特征支持CAN總線(xiàn)協(xié)議2.0A和2.0B;通信波特率最大為1Mbit/s;支持時(shí)間觸發(fā)通信(Time-triggeredcommunication);中斷使能和清除。發(fā)送功能3個(gè)發(fā)送郵箱;支持發(fā)送優(yōu)先級(jí);支持發(fā)送時(shí)間戳。接收功能2個(gè)深度為3的接收FIFO;具有28個(gè)標(biāo)識(shí)符過(guò)濾器;FIFO鎖定功能。時(shí)間觸發(fā)通信在時(shí)間觸發(fā)通信模式下禁用自動(dòng)重傳;16位定時(shí)器;接收時(shí)間戳;發(fā)送時(shí)間戳。CAN總線(xiàn)控制器有3種工作模式:睡眠工作模式;初始化工作模式;正常工作模式。CAN總線(xiàn)控制器有4種通信模式:靜默(Silent)通信模式;回環(huán)(Loopback)通信模式;回環(huán)靜默(LoopbackandSilent)通信模式;正常(Normal)通信模式。數(shù)據(jù)發(fā)送步驟數(shù)據(jù)發(fā)送步驟如下:第1步:選擇一個(gè)空閑發(fā)送郵箱;第2步:根據(jù)應(yīng)用程序要求,配置4個(gè)發(fā)送寄存器;第3步:將CAN_TMIx寄存器的TEN置1;第4步:檢測(cè)發(fā)送狀態(tài)和錯(cuò)誤信息。典型情況是檢測(cè)到MTF和MTFNERR置1,說(shuō)明數(shù)據(jù)被成功發(fā)送。數(shù)據(jù)接收步驟第1步:查看FIFO中幀的數(shù)量。第2步:通過(guò)CAN_RFIFOMIx,CAN_RFIFOMPx,CAN_RFIFOMDATA0x和CAN_RFIFOMDATA1x讀取數(shù)據(jù)。第3步:將寄存器CAN_RFIFOx的RFD置1釋放郵箱,并且等待其由硬件自動(dòng)清0。CAN總線(xiàn)控制器將位時(shí)間分為3個(gè)部分。同步段(Synchronizationsegment),記為SYNC_SEG。該段占用1個(gè)時(shí)間單元(1×????)。位段1(Bitsegment1),記為BS1。該段占用1到16個(gè)時(shí)間單元。相對(duì)于CAN協(xié)議而言,
BS1相當(dāng)于傳播時(shí)間段(Propagationdelaysegment)和相位緩沖段1(Phasebuffersegment1)。位段2(Bitsegment2),記為BS2。該段占用1到8個(gè)時(shí)間單元。相對(duì)于CAN協(xié)議而言,
BS2相當(dāng)于相位緩沖段2(Phasebuffersegment2)。對(duì)比與CAN協(xié)議,位時(shí)序如圖所示。
位時(shí)序(Bittime)CAN協(xié)議采用位同步傳輸方式。這種方式不僅增大了傳輸容量,而且意味著需要一種復(fù)雜的位同步方法。面向字節(jié)傳輸?shù)奈煌椒绞竭m用于接收在每個(gè)字節(jié)前都有起始位的情況,而同步傳輸協(xié)議只要求數(shù)據(jù)幀的最開(kāi)始有一個(gè)起始位。為保證接收器能正確讀取信息,需要不斷地進(jìn)行重新同步。因此,在相位緩沖段采樣點(diǎn)前面和后面都應(yīng)該插入一個(gè)幀間隔??梢酝ㄟ^(guò)位操作仲裁方式訪(fǎng)問(wèn)CAN總線(xiàn)。信號(hào)從發(fā)送器到接收器,再回到發(fā)送器必須在一個(gè)位時(shí)間內(nèi)完成。為了達(dá)到同步的目的,除了相位緩沖段外,還需要一個(gè)傳輸延時(shí)段。在信號(hào)傳輸過(guò)程中,傳輸延時(shí)段被視為發(fā)送或接收延時(shí)。中斷CAN總線(xiàn)控制器占用4個(gè)中斷向量,通過(guò)寄存器CAN_INTEN進(jìn)行控制。這4個(gè)中斷向量對(duì)應(yīng)4類(lèi)中斷源:發(fā)送中斷;FIFO0中斷;FIFO1中斷;錯(cuò)誤和狀態(tài)改變中斷。發(fā)送中斷包括:寄存器CAN_TSTAT中的MTF0置1:發(fā)送郵箱0變?yōu)榭臻e。寄存器CAN_TSTAT中的MTF1置1:發(fā)送郵箱1變?yōu)榭臻e。寄存器CAN_TSTAT中的MTF2置1:發(fā)送郵箱2變?yōu)榭臻e。錯(cuò)誤和工作模式改變中斷可由以下條件觸發(fā):錯(cuò)誤:CAN_STAT寄存器的ERRIF和CAN_INTEN寄存器的ERRIE被置位喚醒:CAN_STAT寄存器中的WUIF和CAN_INTEN寄存器的WIE被置位;進(jìn)入睡眠模式:CAN_STAT寄存器中的SLPIF和CAN_INTEN寄存器的SLPWIE被置位。FIFO0中斷FIFO0中包含待接收數(shù)據(jù):寄存器CAN_RFIFO0中的RFL0不為0,CAN_INTEN寄存器中RFNEIE0被置位;FIFO0滿(mǎn):寄存器CAN_RFIFO0中的RFF0為1,CAN_INTEN寄存器中RFFIE0被置位;FIFO0溢出:寄存器CAN_RFIFO0中的RFO0為1,CAN_INTEN寄存器中RFOIE0被置位。FIFO1中斷FIFO1中包含待接收數(shù)據(jù):寄存器CAN_RFIFO1中的RFL1不為0,CAN_INTEN寄存器中RFNEIE1被置位;FIFO1滿(mǎn):寄存器CAN_RFIFO1中的RFF1為1,CAN_INTEN寄存器中RFFIE1被置位;FIFO1溢出:寄存器CAN_RFIFO1中的RFO1為1,CAN_INTEN寄存器中RFOIE1被置位。習(xí)題簡(jiǎn)述CAN模塊的工作模式和通信模式。簡(jiǎn)述CAN總線(xiàn)的數(shù)據(jù)發(fā)送過(guò)程。簡(jiǎn)述CAN總線(xiàn)的數(shù)據(jù)接收過(guò)程。簡(jiǎn)述CAN總線(xiàn)的過(guò)濾功能。簡(jiǎn)述CAN總線(xiàn)的波特率計(jì)算方法。以太網(wǎng)模塊由MAC(介質(zhì)訪(fǎng)問(wèn)控制器)模塊、MII/RMII模塊和一個(gè)以描述符形式控制的DMA模塊組成。以太網(wǎng)是一種計(jì)算機(jī)局域網(wǎng)技術(shù)。IEEE組織的IEEE802.3標(biāo)準(zhǔn)制定了以太網(wǎng)的技術(shù)標(biāo)準(zhǔn),它規(guī)定了包括物理層的連線(xiàn)、電子信號(hào)和介質(zhì)訪(fǎng)問(wèn)層協(xié)議的內(nèi)容。以太網(wǎng)模塊包含10/100Mbps以太網(wǎng)MAC(媒體訪(fǎng)問(wèn)控制器),采用DMA優(yōu)化數(shù)據(jù)幀的發(fā)送與接收性能,支持MII(媒體獨(dú)立接口)與RMII(簡(jiǎn)化的媒體獨(dú)立接口)兩種與物理層(PHY)通訊的標(biāo)準(zhǔn)接口,實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)幀的發(fā)送與接收。以太網(wǎng)模塊遵守IEEE802.3-2002標(biāo)準(zhǔn)和IEEE1588-2008標(biāo)準(zhǔn)。MAC模塊通過(guò)MII或RMII與片外PHY連接。通過(guò)對(duì)SYSCFG_CFG1寄存器的相關(guān)位進(jìn)行設(shè)置,可以選擇使用哪種接口。SMI(站點(diǎn)管理接口)用于配置和管理外部PHY。發(fā)送數(shù)據(jù)模塊包括:TxDMA控制器,用于從存儲(chǔ)器中讀取描述符和數(shù)據(jù),以及將狀態(tài)寫(xiě)入存儲(chǔ)器;TxMTL,用于對(duì)發(fā)送數(shù)據(jù)的控制,管理和存儲(chǔ)。TxMTL內(nèi)含TxFIFO,用于緩存待MAC發(fā)送的數(shù)據(jù);MAC發(fā)送控制寄存器組,用于管理和控制數(shù)據(jù)幀的發(fā)送。接收數(shù)據(jù)模塊包括:RxDMA控制器,用于從存儲(chǔ)器中讀取描述符,以及將數(shù)據(jù)與狀態(tài)寫(xiě)入存儲(chǔ)器;RxMTL,用于對(duì)接收數(shù)據(jù)的控制,管理和存儲(chǔ)。RxMTL實(shí)現(xiàn)了RxFIFO,用于存儲(chǔ)待轉(zhuǎn)發(fā)到系統(tǒng)存儲(chǔ)的幀數(shù)據(jù);MAC接收控制寄存器組,用于管理數(shù)據(jù)幀的接收和標(biāo)示接收狀態(tài)。MAC內(nèi)含接收過(guò)濾器,采用多種過(guò)濾機(jī)制,濾除特定的以太網(wǎng)幀。接收數(shù)據(jù)模塊包括:RxDMA控制器,用于從存儲(chǔ)器中讀取描述符,以及將數(shù)據(jù)與狀態(tài)寫(xiě)入存儲(chǔ)器;RxMTL,用于對(duì)接收數(shù)據(jù)的控制,管理和存儲(chǔ)。RxMTL實(shí)現(xiàn)了RxFIFO,用于存儲(chǔ)待轉(zhuǎn)發(fā)到系統(tǒng)存儲(chǔ)的幀數(shù)據(jù);MAC接收控制寄存器組,用于管理數(shù)據(jù)幀的接收和標(biāo)示接收狀態(tài)。MAC內(nèi)含接收過(guò)濾器,采用多種過(guò)濾機(jī)制,濾除特定的以太網(wǎng)幀。注意:在使用以太網(wǎng)模塊時(shí),AHB的頻率應(yīng)至少為25MHz。MAC信號(hào)引腳配置(AF1)MIIRMIIPIN(1)PIN(2)PIN(1)PIN(2)ETH_MDC推挽復(fù)用輸出,高速(50MHz)PC1
PC1-ETH_MII_TXD2推挽復(fù)用輸出,高速(50MHz)PC2
-ETH_MII_TX_CLK推挽復(fù)用輸出,高速(50MHz)PC3
-ETH_MII_CRS推挽復(fù)用輸出,高速(50MHz)PA0PH2
-ETH_MII_RX_CLKETH_RMII_REF_CLK推挽復(fù)用輸出,高速(50MHz)推挽復(fù)用輸出,高速(50MHz)PA1
PA1-ETH_MDIO推挽復(fù)用輸出,高速(50MHz)PA2
PA2-ETH_MII_COL推挽復(fù)用輸出,高速(50MHz)PA3PH3
ETH_MII_RX_DVETH_RMII_CRS_DV推挽復(fù)用輸出,高速(50MHz)PA7
PA7
ETH_MII_RXD0ETH_RMII_RXD0推挽復(fù)用輸出,高速(50MHz)PC4
PC4
ETH_MII_RXD1ETH_RMII_RXD1推挽復(fù)用輸出,高速(50MHz)PC5
PC5
ETH_MII_RXD2推挽復(fù)用輸出,高速(50MHz)PB0
ETH_MII_RXD3推挽復(fù)用輸出,高速(50MHz)PB1
ETH_PPS_OUT推挽復(fù)用輸出,高速(50MHz)PB5PG8PB5PG8ETH_MII_TXD3推挽復(fù)用輸出,高速(50MHz)PB8PE2
ETH_MII_RX_ER推挽復(fù)用輸出,高速(50MHz)PB10PI10
ETH_MII_TX_ENETH_RMII_TX_EN推挽復(fù)用輸出,高速(50MHz)PB11PG11PB11PG11ETH_MII_TXD0ETH_RMII_TXD0推挽復(fù)用輸出,高速(50MHz)PB12PG13PB12PG13ETH_MII_TXD1ETH_RMII_TXD1推挽復(fù)用輸出,高速(50MHz)PB13PG14PB13PG14SMI:站點(diǎn)管理接口SMI用于訪(fǎng)問(wèn)和設(shè)置PHY的配置。站點(diǎn)管理接口(SMI)通過(guò)MDC時(shí)鐘線(xiàn)與MDIO數(shù)據(jù)線(xiàn)與外部PHY通訊,可以通過(guò)其訪(fǎng)問(wèn)任意
PHY的任意寄存器。SMI接口可以支持最多32個(gè)PHY,但在任意時(shí)刻只能訪(fǎng)問(wèn)一個(gè)PHY的一個(gè)
寄存器。MDC時(shí)鐘線(xiàn)和MDIO數(shù)據(jù)線(xiàn)具體作用如下:MDC:最高頻率為2.5MHz的時(shí)鐘信號(hào),在空閑狀態(tài)下該引腳保持為低電平狀態(tài)。在傳輸
數(shù)據(jù)時(shí)該信號(hào)的高電平和低電平的最短保持時(shí)間為160ns,信號(hào)的最小周期為400ns;MDIO:用于與PHY之間的數(shù)據(jù)傳輸,與MDC時(shí)鐘線(xiàn)配合,接收/發(fā)送數(shù)據(jù)。
MII:媒體獨(dú)立接口媒體獨(dú)立接口(MII)用于MAC與外部PHY互聯(lián),支持10Mbit/s和100Mbit/s的數(shù)據(jù)傳輸模式。根據(jù)IEEE802.3標(biāo)準(zhǔn),MII接口需要16個(gè)引腳用于數(shù)據(jù)和控制信號(hào)。MII具有以下特性:時(shí)鐘頻率25MHZ使用4位寬度數(shù)據(jù)收發(fā)發(fā)送和接收時(shí)鐘獨(dú)立RMII:精簡(jiǎn)媒體獨(dú)立接口精簡(jiǎn)媒體獨(dú)立接口(RMII)規(guī)范減少了以太網(wǎng)通信所需要的引腳數(shù)。RMII標(biāo)準(zhǔn)則將引腳數(shù)減少到了7個(gè)。RMII具有以下特性:只有一個(gè)時(shí)鐘信號(hào),且該時(shí)鐘信號(hào)需要提高到50MHzMAC和外部的以太網(wǎng)PHY需要使用同樣的時(shí)鐘源使用2位寬度的數(shù)據(jù)收發(fā)為了減少CPU的干預(yù),設(shè)計(jì)了以太網(wǎng)專(zhuān)用DMA控制器,用于實(shí)現(xiàn)FIFO和系統(tǒng)存儲(chǔ)之間的幀數(shù)據(jù)傳輸。DMA和CPU之間的通訊通過(guò)2種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn):描述符列表(鏈結(jié)構(gòu)或環(huán)結(jié)構(gòu))和數(shù)據(jù)緩存控制和狀態(tài)寄存器描述符隊(duì)列可以是顯性(鏈結(jié)構(gòu))或者隱性(環(huán)結(jié)構(gòu))的方式前向連接的。通過(guò)設(shè)置接收描述符的RDES1位14和發(fā)送描述符的TDES0位20為’1’,可以實(shí)現(xiàn)描述符的顯性連接,此時(shí)RDES2及TDES2中將存放緩存地址,RDES3及TDES3中將存放下一個(gè)描述符的地址,這種鏈接的描述符也可以稱(chēng)為描述符的鏈結(jié)構(gòu)。通過(guò)設(shè)置接收描述符的RDES1位14和發(fā)送描述符的TDES0位20為’0’,可以實(shí)現(xiàn)描述符的隱性連接,此時(shí)RDES2及TDES2,RDES3及TDES3中都將存放緩存地址,這種鏈接的描述符也可以稱(chēng)為描述符的環(huán)結(jié)構(gòu)。若當(dāng)前描述符是描述符列表的最后一個(gè)描述符,環(huán)結(jié)構(gòu)下必須設(shè)置TDES0的位21或RDES1的位15以標(biāo)識(shí)當(dāng)前描述符為列表的最后一個(gè)。此時(shí)下一個(gè)描述符又指向描述符列表的第一個(gè)。api文件夾里面裝的是NETCONNAPI和SocketAPI相關(guān)的源文件,只有在操作系統(tǒng)的環(huán)境中,才能被編譯。apps文件夾里面裝的是應(yīng)用程序的源文件,包括常見(jiàn)的應(yīng)用程序,如httpd、mqtt、tftp、sntp、snmp等。core文件夾里面是LwIP的內(nèi)核源文件,后續(xù)會(huì)詳細(xì)講解。include文件夾里面是LwIP所有模塊對(duì)應(yīng)的頭文件。netif文件夾里面是與網(wǎng)卡移植有關(guān)的文件,這些文件為我們移植網(wǎng)卡提供了模板,我們可以直接使用。LwIP全名:LightweightIP,意思是輕量化的TCP/IP協(xié)議,是瑞典計(jì)算機(jī)科學(xué)院(SICS)的AdamDunkels開(kāi)發(fā)的一個(gè)小型開(kāi)源的TCP/IP協(xié)議棧。目前LWIP最新版本是2.1.3。LwIP的設(shè)計(jì)初衷是:用少量的資源消耗實(shí)現(xiàn)一個(gè)較為完整的TCP/IP協(xié)議棧,其中“完整”主要指的是TCP協(xié)議的完整性,實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM的占用。此外LwIP既可以移植到操作系統(tǒng)上運(yùn)行,也可以在無(wú)操作系統(tǒng)的情況下獨(dú)立運(yùn)行。LwIP提供了三種編程接口,分別為RAW/CallbackAPI、NETCONNAPI、SOCKETAPI。RAW/CallbackAPI是指內(nèi)核回調(diào)型的API,這在許多通信協(xié)議的C語(yǔ)言實(shí)現(xiàn)中都有所應(yīng)用。RAW/CallbackAPI是LwIP的一大特色,在沒(méi)有操作系統(tǒng)支持的裸機(jī)環(huán)境中,只能使用這種API進(jìn)行開(kāi)發(fā),同時(shí)這種API也可以用在操作系統(tǒng)環(huán)境中。NET-CONNAPI是基于操作系統(tǒng)的IPC機(jī)制(即信號(hào)量和郵箱機(jī)制)實(shí)現(xiàn)的,它的設(shè)計(jì)將LwIP內(nèi)核代碼和網(wǎng)絡(luò)應(yīng)用程序分離成了獨(dú)立的線(xiàn)程。如此一來(lái),LwIP內(nèi)核線(xiàn)程就只負(fù)責(zé)數(shù)據(jù)包的TCP/IP封裝和拆封,而不用進(jìn)行數(shù)據(jù)的應(yīng)用層處理,大大提高了系統(tǒng)對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的處理效率。Socket,即套接字,它對(duì)網(wǎng)絡(luò)連接進(jìn)行了高級(jí)的抽象,使得用戶(hù)可以像操作文件一樣操作網(wǎng)絡(luò)連接。它十分易用,許多網(wǎng)絡(luò)開(kāi)發(fā)人員最早接觸的就是Socket編程,Socket已經(jīng)成為了網(wǎng)絡(luò)編程的標(biāo)準(zhǔn)。在不同的系統(tǒng)中,運(yùn)行著不同的TCP/IP協(xié)議,但是只要它實(shí)現(xiàn)了Socket的接口,那么用Socket編寫(xiě)的網(wǎng)絡(luò)應(yīng)用程序就能在其中運(yùn)行??梢?jiàn)用Socket編寫(xiě)的網(wǎng)絡(luò)應(yīng)用程序具有很好的可移植性。習(xí)題:簡(jiǎn)述IEEE802.3中定義的以太網(wǎng)數(shù)據(jù)包格式以太網(wǎng)MAC與外部PHY連接有哪兩種接口?他們的信號(hào)定義分別是什么?以太網(wǎng)DMA控制器描述符有哪兩種結(jié)構(gòu)?簡(jiǎn)述以太網(wǎng)配置流程以太網(wǎng)協(xié)議棧LWIP有哪些API?USB全速(USBFS)控制器為便攜式設(shè)備提供了一套USB通信解決方案。USBFS不僅提供了主機(jī)模式和設(shè)備模式,也提供了遵循HNP(主機(jī)協(xié)商協(xié)議)和SRP(會(huì)話(huà)請(qǐng)求協(xié)議)的OTG模式。USBFS包含了一個(gè)內(nèi)部的全速USBPHY(不再需要外部PHY芯片)。USBFS可提供USB2.0協(xié)議所定義的所有四種傳輸方式(控制傳輸、批量傳輸、中斷傳輸和同步傳輸)。簡(jiǎn)介
主要特性支持USB2.0全速(12Mb/s)/低速(1.5Mb/s)主機(jī)模式;支持USB2.0全速(12Mb/s)設(shè)備模式;支持遵循HNP(主機(jī)協(xié)商協(xié)議)和SRP(會(huì)話(huà)請(qǐng)求協(xié)議)的OTG協(xié)議;支持所有的4種傳輸方式:控制傳輸、批量傳輸、中斷傳輸和同步傳輸;在主機(jī)模式下,包含USB事務(wù)調(diào)度器,用于有效地處理從應(yīng)用層獲取的USB傳輸請(qǐng)求;包含一個(gè)1.25KB的FIFORAM;在主機(jī)模式下,支持8個(gè)通道;在主機(jī)模式下,包含2個(gè)發(fā)送FIFO(周期性發(fā)送FIFO和非周期性發(fā)送FIFO)和1個(gè)接收FIFO(由所有的通道共享);在設(shè)備模式下,包含4個(gè)發(fā)送FIFO(每個(gè)IN端點(diǎn)一個(gè)發(fā)送FIFO)和1個(gè)接收FIFO(由所有的OUT端點(diǎn)共享);在設(shè)備模式下,支持4個(gè)OUT端點(diǎn)和4個(gè)IN端點(diǎn);在設(shè)備模式下,支持遠(yuǎn)程喚醒功能;包含一個(gè)支持USB協(xié)議的全速USBPHY;在主機(jī)模式下,SOF的時(shí)間間隔可動(dòng)態(tài)調(diào)節(jié);可將SOF脈沖輸出到PAD;可檢測(cè)ID引腳電平和VBUS電壓;在主機(jī)模式或者OTGA設(shè)備模式下,需要外部部件為連接的USB設(shè)備提供電源。
主要特性
結(jié)構(gòu)框圖信號(hào)線(xiàn)描述I/O端口類(lèi)型描述
VBUS
輸入
總線(xiàn)電源端口
DM
輸入/輸出
差分信號(hào)D-端口
DP
輸入/輸出
差分信號(hào)D+端口
ID
輸入U(xiǎn)SB識(shí)別:微連接器識(shí)別接口
功能描述——USBFS時(shí)鐘及工作模式USBFS可以作為一個(gè)主機(jī)、一個(gè)設(shè)備或者一個(gè)DRD(雙角色設(shè)備),并且包含一個(gè)內(nèi)部全速PHY。內(nèi)部PHY支持主機(jī)模式下的全速和低速、設(shè)備模式下全速以及具備HNP和SRP的OTG協(xié)議。USBFS所使用的USB時(shí)鐘需要配置為48MHz。該48MHzUSB時(shí)鐘從系統(tǒng)內(nèi)部時(shí)鐘產(chǎn)生,并且其時(shí)鐘源和分頻器需要在RCU模塊中配置。上拉或下拉電阻已經(jīng)集成在內(nèi)部全速PHY的內(nèi)部,并且USBFS可根據(jù)當(dāng)前模式(主機(jī)、設(shè)備或OTG模式)和連接狀態(tài)進(jìn)行自動(dòng)選擇。主句或設(shè)備模式下連接示意圖
功能描述——USBFS時(shí)鐘及工作模式當(dāng)USBFS工作在主機(jī)模式下時(shí)(FHM控制位置位、PDM控制位清除),VBUS為USB協(xié)議所定義的5V電源檢測(cè)引腳。內(nèi)部PHY不能提供5VVBUS電源,僅在VBUS信號(hào)線(xiàn)上具有電壓比較器和充電放電電路。所以,如果應(yīng)用需要提供VBUS電源,那么則需要一個(gè)外部的供電電源IC。在主機(jī)模式下,USBFS和USB連接頭之間的VUBS連接可以被忽略,這是由于USBFS并不檢測(cè)VBUS引腳的電平狀態(tài),并假定5V供電電源一直存在。當(dāng)USBFS工作在設(shè)備模式下時(shí)(FHM控制位清除、FDM控制位置位),VBUS檢測(cè)電路由USBFS_GCCFG寄存器中的VBUSIG控制位所確定。所以,如果設(shè)備不需要檢測(cè)VBUS引腳電壓,可以置位VBUSIG控制位,并可釋放VBUS引腳作為其他用途。否則,VBUS引腳的連接不能夠被忽略,并且USBFS需要不斷的檢測(cè)VBUS電平狀態(tài),一旦VBUS電壓降至所需有效值以下,需要立即關(guān)閉DP信號(hào)線(xiàn)上的上拉電阻,這樣則會(huì)產(chǎn)生一個(gè)斷開(kāi)狀態(tài)。
功能描述——USBFS時(shí)鐘及工作模式當(dāng)USBFS工作在OTG模式下時(shí),USBFS_GUSBCS寄存器內(nèi)的FHM、FDM控制位應(yīng)該被清除。在這種模式下,USBFS需要以下四個(gè)引腳:DM、DP、VBUS和ID,并且需要使用電壓比較器檢測(cè)這些引腳的電壓。USBFS也包含VBUS充電和放電電路,用以完成OTG協(xié)議中所描述的SRP請(qǐng)求。OTGA設(shè)備或B設(shè)備由ID引腳的電平狀態(tài)所決定。在實(shí)現(xiàn)HNP協(xié)議的過(guò)程中,USBFS控制上拉和下拉電阻。OTG模式下連接示意圖
功能描述——主機(jī)功能USB主機(jī)端口狀態(tài)主機(jī)應(yīng)用可以通過(guò)USBFS_HPCS寄存器控制USB端口狀態(tài)。系統(tǒng)初始化之后,USB端口保持掉電狀態(tài)。通過(guò)軟件置位PP控制位后,USBPHY(內(nèi)部或外部)將被上電,并且USB端口變?yōu)閿嚅_(kāi)狀態(tài)。檢測(cè)到連接后,USB端口變?yōu)檫B接狀態(tài)。在USB總線(xiàn)上產(chǎn)生一個(gè)復(fù)位后,USB端口將變?yōu)槭鼓軤顟B(tài)。主機(jī)端口狀態(tài)轉(zhuǎn)移圖
功能描述——數(shù)據(jù)FIFO設(shè)備模式FIFO空間主機(jī)模式FIFO空間
功能描述——中斷OTG有兩種中斷:全局中斷、喚醒中斷。全局中斷是軟件需要處理的主要中斷,全局中斷的標(biāo)志位可在USBFS_GINTF寄存器讀取。喚醒中斷可以在USBFS處于掛起狀態(tài)時(shí)觸發(fā),即使USBFS的時(shí)鐘停止。寄存器USBFS_GINTF的位WKUPIF是喚醒源。中斷標(biāo)志描述運(yùn)行模式SEIF會(huì)話(huà)中斷主機(jī)或設(shè)備模式DISCIF斷開(kāi)連接中斷標(biāo)志主機(jī)模式IDPSCID引腳狀態(tài)變化主機(jī)或設(shè)備模式PTXFEIF周期性TxFIFO空中斷標(biāo)志主機(jī)模式HCIF主機(jī)通道中斷標(biāo)志主機(jī)模式HPIF主機(jī)端口中斷中斷主機(jī)模式ISOONCIF/PXNCIF周期性傳輸未完成中斷標(biāo)志/同步OUT傳輸未完成中斷標(biāo)志主機(jī)或設(shè)備模式ISOINCIF同步IN傳輸未完成中斷標(biāo)志設(shè)備模式OEPIFOUT端點(diǎn)中斷標(biāo)志設(shè)備模式IEPIFIN端點(diǎn)中斷標(biāo)志設(shè)備模式EOPFIF周期性幀尾中斷標(biāo)志設(shè)備模式ISOOPDIF同步OUT丟包中斷標(biāo)志設(shè)備模式ENUMF枚舉完成設(shè)備模式RSTUSB復(fù)位設(shè)備模式SPUSB掛起設(shè)備模式ESP早掛起設(shè)備模式GONAK全局OUTNAK有效設(shè)備模式GNPINAK全局非周期INNAK有效設(shè)備模式NPTXFEIF非周期TxFIFO空中斷標(biāo)志主機(jī)模式RXFNEIFRxFIFO非空中斷標(biāo)志主機(jī)或設(shè)備模式SOF幀首主機(jī)或設(shè)備模式OTGIFOTG中斷標(biāo)志主機(jī)或設(shè)備模式MFIF模式錯(cuò)誤中斷標(biāo)志主機(jī)或設(shè)備模式USBFS全局中斷1.USBFS支持哪些運(yùn)行模式?2.USB主機(jī)端口狀態(tài)有那些,繪制主機(jī)端口狀態(tài)轉(zhuǎn)移圖。3.US
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 氧化鋁生產(chǎn)計(jì)劃管理制度
- 道路駕駛員安全生產(chǎn)制度
- 腐竹生產(chǎn)車(chē)間制度及流程
- 冷飲生產(chǎn)出入庫(kù)管理制度
- 2026長(zhǎng)城汽車(chē)招聘面試題及答案
- 2026年教育心理學(xué)與教育方法應(yīng)用案例分析題
- 2026年心理咨詢(xún)服務(wù)與心理調(diào)適題庫(kù)
- 2026年影視編劇職業(yè)能力認(rèn)證考試模擬題
- 2025年理療師職業(yè)技能認(rèn)定考試試題及答案
- 2025年陰式手術(shù)護(hù)理試題及答案
- 成都高新區(qū)桂溪街道公辦幼兒園招聘編外人員考試備考題庫(kù)及答案解析
- 教育培訓(xùn)行業(yè)培訓(xùn)師績(jī)效考核表
- 城市更新培訓(xùn)課件
- 2026年度哈爾濱市第一專(zhuān)科醫(yī)院公開(kāi)招聘編外合同制工作人員51人筆試備考試題及答案解析
- 2026年蘇州工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)新版
- 九年級(jí)寒假期末總結(jié)課件
- 壓鑄機(jī)作業(yè)人員安全培訓(xùn)課件
- 我的Python世界(玩Minecraft我的世界學(xué)Python編程)
- 正確停車(chē)課件
- 2025年度呼吸內(nèi)科護(hù)士長(zhǎng)述職報(bào)告
- GB/T 5783-2025緊固件六角頭螺栓全螺紋
評(píng)論
0/150
提交評(píng)論