第6章部件工作原理與編程示例_第1頁
第6章部件工作原理與編程示例_第2頁
第6章部件工作原理與編程示例_第3頁
第6章部件工作原理與編程示例_第4頁
第6章部件工作原理與編程示例_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

6件工作原理與編程示本章主要以S3C4510B的幾個(gè)常用功能部件為編程對(duì)象,介紹基于S3C4510B的S3C4510BS3C4510BDMAS3C4510BIICS3C4510BBootLoaderARMPC平臺(tái)的程序開發(fā),嵌入式系統(tǒng)的程序設(shè)計(jì)具有其自身的特點(diǎn),來說,其系統(tǒng)資源,如Flash、EEPROM、SDRAM、中斷控制等,各種調(diào)試找出程序的各種語法和邏輯錯(cuò)誤最后應(yīng)使各功能程序模塊化,縮短代碼長(zhǎng)度以節(jié)省空間并減少程序執(zhí)行時(shí)間。而影響到系統(tǒng)的可靠性,因此,應(yīng)用程序的技術(shù)也是必須考慮的,這也是嵌通用I/O口工作原理與編程端口0~7的工作模式IOPMOD寄存器控但通過設(shè)置IOPCON寄存器端口8~端口11可用作外部中斷請(qǐng)求INTREQ0~I(xiàn)NTREQ3端口12、TOUT0171TOUT1。I/O6.2.16.2.1通用I/O模I/OIOPMODP17~P0偏移地操功能描I/O口模0=1=0=1=0=1=0=1=作特殊功能(DMA請(qǐng)求或應(yīng)答、定時(shí)器溢出)IOPCONIOPMOD寄存器。對(duì)于特殊功能輸入端口,S3C4510B提供了一個(gè)濾波器用于檢測(cè)特殊功能信號(hào)DMA請(qǐng)求等特殊功能信號(hào)。偏移地操功能描I/O口控[4]80=1=使0=低電平有效1=[2]0=濾波器 1=濾波器 00=電平檢 01=上升沿檢10=下降沿檢測(cè)11=[22]12用作外部DMA0(nXDREQ0)0=1=使能[21]0=濾波器 1=濾波器[20]0=低電平有效1=[25]13用作外部DMA1(nXDREQ1)0=1=使能[24]0=濾波器 1=濾波器[23]0=低電平有效1=[27]14用作外部DMA0(nXDACK0)0=1=使能[26]0=低電平有效1=[29]15用作外部DMA1(nXDACK1)0=1=使能[28]0=低電平有效1=0=1=使0=1=使偏移地操功能描I/O口數(shù)當(dāng)配置為輸入模式時(shí),I/O口數(shù)據(jù)寄存器偏移地操功能描I/O口數(shù)[17:0]I/OP17~P0的讀/寫值。I/O口數(shù)據(jù)寄存器的值反映對(duì)應(yīng)引腳的以上簡(jiǎn)述了S3C4510B的通用I/O可參考第八章關(guān)于ADS集成編譯調(diào)試環(huán)境的使用方法。CodeWarriorforARMDeveloperSuite(ARMProjectManager),新建Init.s,具體內(nèi)容如下:;Instituteof Academyof;File LDRR0,LDRR1,=0xE7FFFF80;配置SYSCFG,片內(nèi)4KCache,4KSRAM R1,[R0]LDRSP,0x3FE1000;SP指向4KSRAM的尾地址,堆棧向下生 配置SYSCFG特殊功能寄存器將S3C4510B片內(nèi)的8K的SRAM配置4KCache,4KSRAMSRAM中。4KSRAM0x3FE,0000~(0x3FE,1000-1)S3C4510B的堆棧由高地址向低地址生成,將SP0x3FE,1000。完成上述操作后,程序跳轉(zhuǎn)到Main函數(shù)執(zhí)行。Init.s,并添加到新建的項(xiàng)目。Instituteof AcademyofFile #defineIOPMOD (*(volatileunsigned*)0x03FF5000)//IOportmode#defineIOPDATA(*(volatileunsigned*)0x03FF5008)//IOportdatavoidDelay(unsignedint);intMain(){unsignedlong //將IO口置為輸出模}}voidDelay(unsignedint{unsignedinti,j,k;}實(shí)際配址相對(duì)應(yīng)。器默認(rèn)程序的地址為0x8000,該值應(yīng)根據(jù)實(shí)際的SDRAM映射地址進(jìn)行修改。>obey系統(tǒng)中SDRAM0x0040,0000~(0x0140,0000-1)P0~P3口的LED串行通訊工作原理與編程示而廣泛使用,幾乎所有的微控制器、PC都提供串行通訊接口。S3C4510B的UARTI/O口(AsynchronousSerialI/O,SIO)DMA模式,也即UART能產(chǎn)生內(nèi)DMACPUI/O口之間傳送數(shù)據(jù)。S3C4510B的UART1~25、6、78MCLKUCLK(Pin64)驅(qū)動(dòng);發(fā)送器和都有獨(dú)立的數(shù)據(jù)緩沖寄存器和數(shù)據(jù)移位器。數(shù)據(jù)引腳UATXDnUARXDn移入移位器,UARTUART之前先寫一個(gè)字節(jié)數(shù)據(jù)6.2.26.2.26-2-1UART6-2-1UART特殊偏移地操功能描UART0行控UART1行控UART0控制寄存UART1控制寄存讀UART0讀UART1狀態(tài)寄存寫UART0發(fā)送保持寄存寫UART1發(fā)送保持寄存讀UART0接收緩沖寄存讀UART1接收緩沖寄存UART0波特UART1波特寫UART0波特寫UART1波特寫UART0波特寫UART1波特UART(UARTLineControlRegisters,ULCON0、偏移地操功能描UART0行控UART1行控6-2-2UART6-2-2UART行控制寄存器描位位功能描每幀字位,‘01’=6位,‘10’=7位,‘11’=8位。停止位該位指示每幀數(shù)據(jù)的停止位數(shù):‘0’=每幀一個(gè)停止位,‘1’=每幀兩個(gè)停止位。校驗(yàn)?zāi)r?yàn)并進(jìn)行檢測(cè):‘0XX’=無校驗(yàn),‘100’=奇校驗(yàn),‘101’=偶校驗(yàn),‘100’=奇校驗(yàn),‘110’=校驗(yàn)強(qiáng)制/檢測(cè)為1,‘111’=校驗(yàn)強(qiáng)制/檢測(cè)為00=內(nèi)部時(shí)鐘1=外部時(shí)鐘S3C4510B的UART模塊支持紅外(IR)發(fā)送與收。要使能紅外模式,需設(shè)置ULCON[7]1,否則選擇正常UART模式。00=5 01=610=7 11=80=1=每幀兩個(gè)停止位0xx=無校驗(yàn)100=101=1101110=內(nèi)部時(shí)鐘1=外部時(shí)鐘0=1=UART(UARTControlRegisters,UCON0、偏移地操功能描UART0控制寄存UART1控制寄存6-2-3UART6-2-3UART控制位位功能描該兩位的值決定當(dāng)從UART接收緩沖寄存器中數(shù)‘00’=Rx模式,‘10’=產(chǎn)生GDMA通道0請(qǐng)求‘11’=產(chǎn)生GDMA通道1請(qǐng)求斷、幀錯(cuò)誤、校驗(yàn)錯(cuò)誤或Overrun錯(cuò)誤)時(shí)是否讓UART產(chǎn)生中斷請(qǐng)求:‘0’=不產(chǎn)生接收狀態(tài)中斷請(qǐng)求‘1’=該兩位的值決定當(dāng)寫數(shù)據(jù)到UART發(fā)送緩沖寄存器中‘00’=Tx模式,‘10’=產(chǎn)生GDMA通道0請(qǐng)求‘11’=產(chǎn)生GDMA通道1請(qǐng)求0=不產(chǎn)生DSR輸出1=DSR輸出(nUADSR引腳)發(fā)送間0=不發(fā)送間隔信號(hào)1=發(fā)送該位選擇UART是否進(jìn)入回環(huán)模式。在回環(huán)模式下,UTXBUF在內(nèi)部直接連接到接收緩沖寄存器00=01=10=GDMA011=GDMA10=1=產(chǎn)生接收狀態(tài)中斷00=01=10=GDMA011=GDMA10=不產(chǎn)生DSR輸出(nUADSR引腳1=產(chǎn)生DSR輸出(nUADSR引腳0=1=0=1=使能回環(huán)模式(僅用于測(cè)試UART(UARTStatusRegisters,USTAT0、偏移地操功能描讀UART0狀態(tài)寄存讀UART1狀態(tài)寄存6-2-4UART6-2-4UART狀態(tài)位位功能描Overrun在接收串行數(shù)據(jù)的操作中,當(dāng)發(fā)生Overrun錯(cuò)誤時(shí),出,而被新收到的數(shù)據(jù)所覆蓋時(shí)發(fā)生Overrun錯(cuò)誤。如果接收狀態(tài)中斷使能位UCON[2]為‘1’,則當(dāng)任何時(shí)候UART狀態(tài)寄存器USTAT,該位都會(huì)校驗(yàn)錯(cuò)如果接收狀態(tài)中斷使能位UCON[2]為‘1’,則當(dāng)校任何時(shí)候UART狀態(tài)寄存器USTAT,該位都自動(dòng)如果接收狀態(tài)中斷使能位UCON[2]為‘1’,則當(dāng)幀任何時(shí)候UART狀態(tài)寄存器USTAT,該位都自動(dòng)間隔中如果接收狀態(tài)中斷使能位UCON[2]為‘1’,則當(dāng)接任何時(shí)候UART狀態(tài)寄存器USTAT,該位都自動(dòng)。當(dāng)接收緩沖寄存器URXBUF從串行口接收到一個(gè)有URXBUF中接收到的有效數(shù)據(jù)。當(dāng)該位為‘1’時(shí),根據(jù)當(dāng)前UART接收模式位UCON[1:0]的設(shè)置,可以產(chǎn)生中斷或DMA當(dāng)發(fā)送緩沖寄存器UTXBUF為空時(shí),該位自動(dòng)置為‘1’,此時(shí)可以向UTXBUF寫入下一個(gè)要發(fā)送的數(shù)當(dāng)該位為‘0’時(shí),表示UTXBUF中的數(shù)據(jù)還未全部拷貝到發(fā)送移位寄存器中,此時(shí)不能向UTXBUF中當(dāng)該位為‘1’時(shí),根據(jù)當(dāng)前SIOUCON[4:3]的設(shè)置,可以產(chǎn)生中斷或DMA當(dāng)發(fā)送緩沖寄存器UTXBUF為空且發(fā)送移位寄存器Overrun1=Overrun錯(cuò)誤(如果UCON[2]1,則會(huì)產(chǎn)生接收狀態(tài)中斷Overrun錯(cuò)誤。1=校驗(yàn)錯(cuò)誤(如果UCON[2]1,則會(huì)產(chǎn)生接收狀態(tài)中斷幀錯(cuò)誤求UART(UARTTransmitBufferRegisters,UTXBUF0、的數(shù)據(jù)寫入該寄存器時(shí),UART的狀態(tài)寄存器USTAT[6]自動(dòng)。偏移地操功能描寫UART0發(fā)送緩沖寄存寫UART1發(fā)送緩沖寄存6-2-5UART6-2-5UART發(fā)送位位功能描發(fā)送數(shù)存器空位USTAT[6]清‘0’,以防UTXBUF中的數(shù)據(jù)UART(UARTReceiveBufferRegister,URXBUF0、UART接收緩沖寄存器URXBUF0URXBUF1,存放接收到的8位串行數(shù)據(jù)UART接收完一個(gè)數(shù)據(jù)幀UART的狀態(tài)寄存器USTAT[5]置為1當(dāng)URXBUF時(shí)USTAT[5]自動(dòng)。偏移地操功能描讀UART0接收緩沖寄存讀UART1接收緩沖寄存6-2-6UART6-2-6UART接收位位功能描接收數(shù)當(dāng)接收完一幀數(shù)據(jù)時(shí),UART狀態(tài)寄存器中的接收數(shù)據(jù)準(zhǔn)備好位USTAT[5]被置為‘1URXBUF中任何時(shí)候URXBUF,接收數(shù)據(jù)準(zhǔn)備好位UART(UARTBaudRateDivisorRegisters,UBRDIV0、偏移地操功能描UART0波特UART1波特[3:0]xxx0=xxx1=CNT0的計(jì)算如下 50MHzMK21(1.5625MHz2UCLKUART0、UART1的外部時(shí)鐘輸入引腳。UART波特率發(fā)生器的MCLK2或UCLK,由寄存器UCCON[6]選擇。UARTS3C4510BUART0CodeWarriorforARMDeveloperSuite(ARMProjectManager),新建Init.s,具體內(nèi)容與第一個(gè)例子相同。Instituteof AcademyofFile #defineULCON0 (*(volatileunsigned*)0x03FFD000)//UARTchannel0linecontrolregister#defineUCON0 (*(volatileunsigned*)0x03FFD004)//UARTchannel0controlregister#defineUSTAT0 (*(volatileunsigned*)0x03FFD008)//UARTchannel0statusregister#defineUTXBUF0 (*(volatileunsigned*)0x03FFD00c)//UARTchannel0transimitholdingregister#defineURXBUF0 (*(volatileunsigned*)0x03FFD010)//UARTchannel0recievebufferregister#defineUBRDIV0 (*(volatileunsigned*)0x03FFD014)//Baudratedivisorregister0#defineULCON1 (*(volatileunsigned*)0x03FFE000)//UARTchannel1linecontrolregister#defineUCON1 (*(volatileunsigned*)0x03FFE004)//UARTchannel1controlregister#defineUSTAT1 (*(volatileunsigned*)0x03FFE008)//UARTchannel1statusregister#defineUTXBUF1 (*(volatileunsigned*)0x03FFE00c)//UARTchannel1transimitholdingregister#defineURXBUF1 (*(volatileunsigned*)0x03FFE010)//UARTchannel1recievebufferregister#defineUBRDIV1 (*(volatileunsigned*)0x03FFE014)//Baudratedivisorregister1voidInitUART(intPort,intBaudrate);voidPrintUART(intPort,char*s);intMain(){InitUART(0,0x500);//19200bpsCPU工作頻率 PrintUART(0,"CommuncationTestting!}}voidPrintUART(intPort,char{}}}voidInitUART(intPort,int{}}}行的映象文件,當(dāng)可執(zhí)行的映象文件運(yùn)行時(shí),會(huì)不停的向UART0發(fā)送字符串“CommuncationTestting!”。中斷控制器工作原理與編程CPU都支持中斷,S3C4510B21個(gè)中斷源,中斷請(qǐng)求可由內(nèi)部功能模塊和外部引腳信號(hào)產(chǎn)生。ARM7TDMI核可以識(shí)別兩種類型的中斷:正常中斷請(qǐng)求(NormalInterruptRequest,IRQ)和快速中斷請(qǐng)求(FastInterruptRequest,F(xiàn)IQ),IRQFIQ。S3C4510B的中斷控制器對(duì)每一個(gè)中斷源都有一個(gè)中斷懸掛位(InterruptPendingBit)。中斷模式寄存器(InterruptModeRegister):為每一個(gè)中斷源定義中斷模IRQFIQ。中斷寄存器(InterruptMaskRegister):如果中斷位為S3C4510B(InterruptS3C4510B216-2-7表6-2- S3C4510B的中斷IIC總線中以太網(wǎng)控制器MAC以太網(wǎng)控制器MAC以太網(wǎng)控制器BDMA以太網(wǎng)控制器BDMAHDLC通道B接收HDLC通道B發(fā)送HDLC通道A接收HDLC通道A發(fā)送定時(shí)器1中定時(shí)器0中GDMA通道1中GDMA通道0中UART1接收與錯(cuò)誤中UART1發(fā)送UART0接收與錯(cuò)誤中UART0發(fā)送外部中斷外部中斷外部中斷外部中斷中斷控制器的特殊功能寄存器(InterruptControllerSpecialRegisters)中斷模式寄存器(InterruptModeRegister)中斷模式寄存器INTMOD偏移地操功能描理中斷。21個(gè)中斷源映射如下: IIC MAC MAC BDMA BDMA HDLCB HDLCB HDLCA HDLCA 1 0 GDMA1 GDMA0 UART1 UART1 UART0 UART0 中斷懸掛寄存器(InterruptPending偏移地操功能描INTPND216-2-721個(gè)中斷源,當(dāng)中斷請(qǐng)求的方式清除中斷懸掛位。21個(gè)中斷源映射如下: IIC MAC MAC BDMA BDMA HDLCB HDLCB HDLCA HDLCA 1 0 GDMA1 GDMA0 UART1 UART1 UART0 UART0 中斷寄存器(InterruptMask中斷寄存器INTMSK保持每一個(gè)中斷源的中斷位偏移地操功能描中斷寄存INTMSK216-2-721個(gè)中斷源,當(dāng)中斷除時(shí),中斷請(qǐng)求會(huì)得到響應(yīng)。21個(gè)中斷源映射如下: IIC MAC MAC BDMA BDMA HDLCB HDLCB HDLCA HDLCA 1 0 GDMA1 GDMA0 UART1 UART1 UART0 UART0 [21]全局中斷0=1=所有的中斷請(qǐng)關(guān)于S3C4510B定時(shí)器工作原理與編程示通過設(shè)置定時(shí)器控制寄存器TCON中的控制位可以或使能T0和T1無論何間隔模式(IntervalfOUTfMCLK觸發(fā)模式(TogglefOUT=fMCLK/(2×定時(shí)器的數(shù)據(jù)值)6.2.36.2.4塊定時(shí)器模式寄存器(TimerModeTMOD32位定時(shí)器的操作。TMOD寄存器的偏移地操功能描001010TOUT01TOUT0101010TOUT11TOUT1定時(shí)器數(shù)據(jù)寄存器(TimerDataTDATA0TDATA1的值決定每一個(gè)定時(shí)器的計(jì)數(shù)溢出時(shí)TDATA偏移地操功能描定時(shí)器0定時(shí)器1[31:0]01的數(shù)據(jù)值定時(shí)器計(jì)數(shù)寄存器(TimerCountRegister)定時(shí)器計(jì)數(shù)寄存器TCNT0和TCNT101在正常工作情況TCNT偏移地操功能描定時(shí)器0定時(shí)器1[31:0]01CodeWarriorforARMDeveloperSuite(ARMProjectManager),新建;Instituteof Academyof;File Timerinterrupt ;I/O口模式寄存器 ;I/O口數(shù)據(jù)寄存器 ;中斷寄存器 ;數(shù)據(jù)中止異常,跳轉(zhuǎn)到當(dāng)前位置 ;LEDDisLDRR1,=IOPMODLDRR0,=&ffSTRR0,[R1]LDRR1,=IOPDATALDRR0,=&03STRR0,[R1]EORR0,R0,R0ADDR0,R0,#1CMPR0,#&180000BNELEDDELAYLDRR1,=IOPDATALDRR0,=&0STR;UserLDRR0,=0x3FF0000LDRR1, ;配置SYSCFG,片內(nèi)4KCache,4K R1,LDRSP, ;SP指向4KSRAM的尾地址,堆棧向下生;InterruptSpecialLDR LDRR0,=&0STRR0,[R1]LDR ;設(shè)置中斷寄存器,只允許定時(shí)器0中LDRR0,=&1FFbFFSTRR0,[R1];Timer0SpecialLDR LDRR0,=&3FFFFFFSTRR0,[R1]LDR ;使能定時(shí)器LDRR0,=&01STR ;Timer0InterruptService SP!,{R0-R6,LR}LDR ;清INTPNDLDRR0,=&400STRR0,[R1]LDR ;讀IOPDATA的值加一并送LDRR1,[R0]ADDR1,R1,#1STRR1,[R0] SP!,{R0-R6,LR};恢復(fù)現(xiàn)場(chǎng),中斷返 0x0,否則程序不能正常運(yùn)行。GDMA工作原理與編程S3C4510BDMA控制器(GeneralDMAController,GDMA)。CPUGDMA可完成如下的數(shù)據(jù)傳輸:—器到器的雙向數(shù)據(jù)傳輸DMA操作完成以后,可由軟件再次啟動(dòng)。S3C4510BDMA8位、1632位的方式傳送數(shù)據(jù)。6.2.5GDMA6.2.5GDMA塊GDMA(GDMASpecial6-2-8GDAM特殊功能寄存器概偏移地操功能描GDMA通道0控制寄存GDMA通道1控制寄存GDMA通道0GDMA通道1GDMA通道0目的地址寄存GDMA通道1目的地址寄存GDMA通道0傳輸計(jì)數(shù)寄存GDMA通道1傳輸計(jì)數(shù)寄存GDMA(GDMAControl偏移地操功能描GDMA通道0控制寄存GDMA通道1控制寄存6-2-9GDMA控制寄存器描位位功能描該位置‘1’啟動(dòng)DMA操作。要停止DMA操作,該位必須清‘0’。用戶可通過對(duì)GDMA運(yùn)行位控制地址(GDMACON偏移地址+0x20)的操作控制該位。當(dāng)使用運(yùn)行位控制地址時(shí),其他的GDMA受影響當(dāng)GDMA操作啟動(dòng)時(shí),該狀態(tài)位(只讀)自動(dòng)置為當(dāng)GDMA空閑時(shí),該位為‘0’GDMA支持4軟件請(qǐng)求模式(器到器外部DMA請(qǐng)求UART0塊傳UART1塊傳該位控制在DMA操作中目的地址是遞增(‘0’)還是增減方該位控制在DMA操作中源地址是遞增(‘0’)該位決定在DMA操作中目的地址是否固定。使用該特該位決定在DMA操作中源地址是否固定。使用該特性可以通過設(shè)置或清除運(yùn)行使能位來啟動(dòng)或停止DMA作。如果在DMA啟動(dòng)時(shí)將該位置‘1’,則當(dāng)DMA操當(dāng)該位置‘1’時(shí),GDMA控制器工作于4-數(shù)據(jù)猝發(fā)模的,然后傳送到4個(gè)連續(xù)的目的地址,此時(shí)應(yīng)注當(dāng)模式位[3:2]=‘10’(UART0與器之間的數(shù)據(jù)傳輸)或‘11’(UART1與器之間的數(shù)據(jù)傳輸)當(dāng)該位為‘1’,由器到外設(shè)當(dāng)該位為‘0’,由外設(shè)到器單/塊模該位決定外部DMA請(qǐng)求DMA在單模式下(該位為‘0’),每一次DMA操作都需要外部的DMA請(qǐng)求。在塊模式下(該位為‘1’),只需要一次外部的DMA請(qǐng)求即可完成整個(gè)DMA操作,直到傳輸計(jì)數(shù)值為0。傳輸寬該兩位決定傳輸數(shù)據(jù)的寬度(8位、16位或32位)。增或遞減1。增或遞減2?;蜻f減4連續(xù)模該位可使DMA控制器占用系統(tǒng)總線直到DMA傳輸計(jì)數(shù)器的值為零。必須操作該位,使DMA傳輸操作DRAM的刷新周期)。查詢模使用該模式可以提高外部DMA操作的速度。當(dāng)該位為‘1’時(shí),在外部DMA請(qǐng)求信號(hào)(nXDREQ)有效期間都進(jìn)行DMA數(shù)據(jù)傳輸操作,信號(hào)的有效時(shí)間決定傳輸?shù)臄?shù)據(jù)量。當(dāng)nXDREQ信號(hào)有效且DMA控制器取得控制總線權(quán),會(huì)一直控制系統(tǒng)總線直到nXDREQ信號(hào)變?yōu)闊o效。因此,必須控制nXDREQ信號(hào)的有效時(shí)過DRAM的刷新周期)。注意:要確保DMA操作可靠,必須的單獨(dú)配置GDMA控制寄存器的每一位0DMA1DMA忙狀態(tài)0=DMA1=DMA00=軟件請(qǐng)求模式(器 01(用于外設(shè))10=UART011=UART1010101(固定01(固定0DMA1DMA0=4-數(shù)據(jù)猝發(fā)模140=UART0/1到1=器到0nXDREQDMA1nXDREQDMA00=字節(jié)(8位 01=半字(16位10=字(32位 11=未使01DMA0DMA1GDMA(GDMASource/Destination偏移地操功能描GDMA通道0GDMA通道1GDMA通道0目的地址寄存GDMA通道1目的地址寄存GDMA(GDMATransferCountGDMA傳輸計(jì)數(shù)寄存器為DMA通道0/1保留在傳輸完成后的24位當(dāng)前計(jì)數(shù)值。在每一次DMA操作完成時(shí)計(jì)數(shù)值總是按1增減,無論GDMA傳輸數(shù)據(jù)的寬度或是處4-數(shù)據(jù)猝發(fā)模式。偏移地操功能描GDMA通道0GDMA通道1GDMA通道0目的地址寄存GDMA通道1目的地址寄存GDMAGDMACPU的干預(yù)。請(qǐng)求者或目標(biāo)是指器、UART和外設(shè)。外設(shè)可以通過nXDREQ信號(hào)請(qǐng)求GDMA服DMA通道都可以通過向相應(yīng)的寄存器寫入數(shù)據(jù)來進(jìn)行編程控制,這些UART、外部I/O或通過編程(只用于器到器)都可以請(qǐng)求DMA服務(wù)。UARTGDMA部件在片內(nèi)已經(jīng)相連。GDMA重新編程,即使是對(duì)同一個(gè)緩沖區(qū)的數(shù)據(jù)進(jìn)行重傳。4-GDMA請(qǐng)求(可由GDMA4次數(shù)據(jù)傳輸。在單模DMA請(qǐng)求。0。nXDREQ信號(hào)有效,就會(huì)持續(xù)進(jìn)行數(shù)據(jù)的傳輸。GDMAS3C4510BGDMA0DMACodeWarriorforARMDeveloperSuite(ARMProjectManager),新建Init.s,具體內(nèi)容如下:;Instituteof Academyof;File DMA ;GDMA通道0控制寄存;GDMA通道0;GDMA通道0目的地址寄存;GDMA通道0傳輸計(jì)數(shù)寄存 ;LEDDisLDRR1,=IOPMODLDRR0,=&ffSTRR0,[R1]LDRR1,=IOPDATALDRR0,=&03STRR0,[R1]EORR0,R0,R0ADDR0,R0,#1CMPR0,#&180000BNELEDDELAYLDRR1,=IOPDATALDRR0,=&0STR;UserLDRR0,=0x3FF0000LDRR1, ;配置SYSCFG,片內(nèi)4KCache,4KSTRR1,LDRSP, ;SP指向4KSRAM的尾地址,堆棧向下生;DataLDR ;R1指向源地址,將連續(xù)的0x100個(gè)單元初始LDRR0,=0x0STRR0,[R1]ADDR1,R1,#1ADDR0,R0,#1CMPR0,COUNTBNELOOP;GDMA0ControllLDR ;設(shè)置GDMALDRR0,=SRC_ADDSTRR0,[R1]LDR ;設(shè)置GDMA的目的地LDRR0,=DST_ADDSTRR0,[R1] ;設(shè)置GDMALDRR0,=COUNTSTRR0,[R1]LDR ;設(shè)置GDMALDRR0,=0x0801STRR0,[R1] ;循環(huán)等待DMA傳輸完0x100000DMA0x200000IIC總線控制器工作原根為串行時(shí)鐘線(SerialClockLine,SCL)IIC連接到總線上的每一個(gè)設(shè)備都可以通過一個(gè)主控器使用唯一的地址進(jìn)行軟件尋址線主控既可以一個(gè)主送器也是一個(gè)主但的IIC6.2.6S3C4510BIIC6.2.6S3C4510BIIC功能描述(FunctionalS3C4510B的IIC總線控制器為一個(gè)串行IIC過設(shè)置預(yù)分頻寄存器(PrescalerRegister,IICPSR)對(duì)串行時(shí)鐘頻率進(jìn)行編程。串行時(shí)鐘頻率可串行IIC總線,然后總線控制器發(fā)送7位的從設(shè)備地址并通過移位緩沖寄存器發(fā)送器。移位緩沖寄存器無論是被讀還是寫,BF位均會(huì)自動(dòng)。若要進(jìn)行連續(xù)的讀/ACKIIC(IIC-BUSOperationIICSCLICIC過唯一的地址進(jìn)行識(shí)別,根據(jù)其特性,可作為發(fā)送器或工作。ICIC2ICIC(此時(shí),主器件為發(fā)送器,從器件為接收2、主IC器件從從IC器件接收數(shù)據(jù)(此時(shí),主器件為,從器件為發(fā)送連接在總線上的IIC接口在輸出階段通過漏極開路(Open-drain)或集電極開路(Open-collector)的方式完成線與(Wired-ANDIIC100Kb/SIC(400PF)位傳輸(BitTransfers):由于連接到IIC總線上的器件各不相同(CMOS器件,NMOS器件,TTL器件等),邏輯0或邏輯1的電平會(huì)根據(jù)電源電壓的高低發(fā)停止條件:當(dāng)SCL為高電平時(shí),SDA產(chǎn)生由低電平到高電平的跳變。6.2.76.2.7條數(shù)據(jù)傳輸操作(DataTransfer位ACK(如圖6.2.7),傳輸字節(jié)時(shí)最(MSB-first)。,時(shí)就保持時(shí)鐘線SCL為低電平強(qiáng)制發(fā)送器進(jìn)入等待狀態(tài),只有當(dāng)準(zhǔn)SCL傳輸線時(shí),數(shù)據(jù)傳輸才會(huì)繼續(xù)進(jìn)行。,Procedure脈沖的高電平期間SDA能夠保持穩(wěn)定的低電平。6.2.8格IC第一個(gè)數(shù)據(jù)字節(jié)的位定義(DefinitionofBitsintheFirstDataIC器件將該地址與自己的地址進(jìn)行比IC器件就認(rèn)為自身被主控器尋址為一個(gè)從發(fā)送器或從接收廣播尋址(GeneralCallAddress):IIC總開始字節(jié)(StartByte):在每一次的數(shù)據(jù)傳輸之前都有一個(gè)開始過程,描述 當(dāng)需要總線的主控器在發(fā)送完開始條件S后,接著發(fā)送開始字節(jié)(“IC器件以較低的采樣率對(duì)SDA傳輸線進(jìn)行采樣,IC器件就切換到較高的采樣率檢測(cè)重復(fù)開始條件Sr用于同步,在檢測(cè)到重Sr后復(fù)位,忽略該開始字節(jié)。IIC(IICBusSpecial控制狀態(tài)寄存器(ControlStatus偏移地操功能描6-2-10IICCON寄存器位位功能描時(shí),BF置位。IICBUF寄存器無論是被讀還是寫,BF位都自動(dòng)。如果將該位置為“1”,IIC總線停止工作,要激活I(lǐng)IC總線,應(yīng)將該位該位置“1”,使能IIC總線LRB位為只讀。該位保持IIC總線上最后接收到的位。號(hào),可以測(cè)試LRB位ACK位通常置為“1”,以便IIC總線控制器在每一個(gè)當(dāng)IIC總線控制器工作在模式,且不需要從從送器接收數(shù)據(jù)時(shí),該位必須“00”=無影“01”=開“10”=?!?1”=總線忙該位為只讀,用以指示IIC總線是否被使用。為“1”表示總線忙。該位由開始條件和停止條件置位或。態(tài)保無1BF0=1BF1”使用該只讀狀態(tài)位可以檢測(cè)(從器件)的應(yīng)答信號(hào),或當(dāng)寫“11”0SDA(ACK)1SDA(ACK)09SCLACK19SCLACK[5:4]COND100011011SCL[6]總線忙0(空閑)1(忙)01IIC移位緩沖寄存器(ShiftBuffer偏移地操功能描6-2-11IICBUF寄存器位位功能描數(shù)該數(shù)據(jù)區(qū)域用作串行移位寄存器和IIC總線的讀緩沖接IICBUF寄存器由移位寄存器和數(shù)據(jù)緩沖兩部分構(gòu)成。發(fā)送數(shù)據(jù)時(shí),8位的并行數(shù)據(jù)首先寫入移位寄存器。接收數(shù)據(jù)時(shí),從數(shù)據(jù)緩沖區(qū)保無預(yù)分頻寄存器(Prescaler偏移地操功能描6-2-12IICPS寄存器描位位功能描預(yù)分頻若預(yù)分頻值為0,則將系統(tǒng)時(shí)鐘除以19作為IIC總線保無以太網(wǎng)控制器工作原太網(wǎng)控制器。在半雙工模式下,控制器支持IEEE802.3的CSMA/CD協(xié)議;在全雙工IEEE802.3MAC以太網(wǎng)控制器的MAC層支持獨(dú)立接口(MediaIndependentInterface,MII)和帶緩DMA(BufferedDMAInterface,BDI)。MAC層由發(fā)送模塊、接收模塊、流控模塊、用于網(wǎng)絡(luò)地址的匹配地址器(ContentAddressMII支持在25MHz時(shí)鐘下以100M速率的發(fā)送與接收操作,和在2.5MHz時(shí)鐘下10M的發(fā)送與接收操作。同時(shí),MIIISO/IEC802-3于從MAC層中分離出物理層的獨(dú)立層標(biāo)準(zhǔn)。6.2.9以太網(wǎng)系統(tǒng)的流控框主要特MAC發(fā)送/接收FIFOs(分別為80字節(jié)和16字節(jié)),支持在后重新發(fā)DMA片內(nèi)CAM(可21個(gè)地址)MAC功能模6-2-13MAC功能模 發(fā)送模將要發(fā)送的數(shù)據(jù)從發(fā)送緩沖區(qū)移到MII。發(fā)送模塊包括CRC生成電于處理后的回退和數(shù)據(jù)幀間間隔的定時(shí)器接收模從MII接收數(shù)據(jù)并存入接收FIFO。接收模塊完成邏輯功能:計(jì)算與校驗(yàn)CRC值;對(duì)從MII接收的數(shù)據(jù)進(jìn)行奇偶生成和檢測(cè)最大與最小數(shù)據(jù)包長(zhǎng)度。接收模塊同時(shí)還包含一個(gè)匹配地址器(CAM)模包流控模辨別MAC控制包,并支持用于全雙工連接的暫停操作。流控模塊同MAC控制(命令)與狀回環(huán)電提供獨(dú)立于MII和物理層的MAC圖 獨(dú)立接口(MediaIndependent10M100MTTLCMOSASIC具有驅(qū)動(dòng)有限長(zhǎng)度電纜的能力物理層(PhysicalLayer物理層完成發(fā)送與接收數(shù)據(jù)的編碼/。其編碼/(用于10BASE-T的曼編碼用于100BASE-X4B/5B編碼以及用于100BASE-T48B/6T編碼)束。同時(shí),MIICRC字段結(jié)束。MACPHY。DMA(BufferedDMA帶緩沖的DMA接口支持通過系統(tǒng)總線的讀/8BDIBDI接收數(shù)據(jù)并發(fā)送出去,或?qū)⒔邮盏降臄?shù)BDI,由幀結(jié)束信號(hào)標(biāo)識(shí)各數(shù)據(jù)包的邊界。MAC(MACTransmitMAC802.3CSMA/CD協(xié)議兼容。MAC發(fā)CRC6.2.11MAC6.2.11MAC塊FIFO(TransmitFIFOandRead/WriteControllers):FIFO80字節(jié),每一個(gè)字節(jié)數(shù)據(jù)附加一個(gè)奇偶校驗(yàn)位,即每個(gè)字節(jié)為9位長(zhǎng)度,其中,前64個(gè)字節(jié)數(shù)據(jù)可以被打包和發(fā)送,并在發(fā)生碰撞時(shí)進(jìn)行重發(fā),無需系統(tǒng)的干預(yù)。如果沒有碰撞發(fā)生,則進(jìn)行數(shù)據(jù)包發(fā)送,剩余的16個(gè)字FIFO不發(fā)送而丟失。BDI請(qǐng)求數(shù)據(jù),然后由系統(tǒng)控制器從系統(tǒng)器中獲取數(shù)據(jù)。請(qǐng)求的數(shù)據(jù)。發(fā)送狀態(tài)機(jī)連續(xù)的發(fā)送數(shù)據(jù),直到檢測(cè)到最后一個(gè)字節(jié)的幀結(jié)束FIFOFIFO控制器與計(jì)數(shù)器根驗(yàn)錯(cuò)誤,F(xiàn)IFO控制器就設(shè)置一個(gè)錯(cuò)誤狀態(tài)位,若對(duì)應(yīng)的中斷使能同時(shí)產(chǎn)生中斷。前導(dǎo)與后綴發(fā)生器(PreambleandJamGenerator):一旦控制寄存器中的發(fā)FIFO8Tx_en信號(hào)啟動(dòng)填充發(fā)生器(PADGenerator):如果發(fā)送一個(gè)短的數(shù)據(jù)包,MAC會(huì)生成填充可以填充字節(jié)的生成。CRC(ParallelCRCGenerator):數(shù)據(jù)包中所有要發(fā)送的數(shù)據(jù),CRC存器的對(duì)應(yīng)位CRC生成。該功能可以用于測(cè)試,例如,為測(cè)試的錯(cuò)誤檢CRCCRC校驗(yàn)回退與重發(fā)定時(shí)器(Back-offandRetransmitTimers):當(dāng)檢測(cè)到網(wǎng)絡(luò)上有發(fā)送狀態(tài)機(jī)(TransmitStateMachine):發(fā)送狀態(tài)機(jī)是發(fā)送模塊的控制MAC(MACRECEIVEMAC802.3CSMA/CDBDICAMCRC6.2.12MACFIFO(ReceiveFIFOController):FIFO控制器一次接收FIFO接收數(shù)據(jù)時(shí),CAM模塊根據(jù)自身的地址對(duì)數(shù)據(jù)包的目的地址進(jìn)行檢測(cè)如果CAM能識(shí)別該FIFO。CAM(AddressCAMandAddressRecognition):CAM模塊完成地址識(shí)別。它將接收到的數(shù)據(jù)包的目的地址與自身的地址進(jìn)行比較,如果地址匹配,接收狀態(tài)機(jī)就繼續(xù)接收數(shù)據(jù)。CAM模塊按6個(gè)字節(jié)一個(gè)地址的方式組織,共有32字(128字節(jié))的大小,最多可21個(gè)地址(126字節(jié))。外,CAM19CAM20可用于構(gòu)造一個(gè)由用戶定義的控制幀。接收狀態(tài)機(jī)(ReceiveStateMachine):MIIMII的的地址,接收FIFO就將數(shù)據(jù)包的其余部分。在接收結(jié)束后,接收模塊就通過SFD。誤,BDMARx_toss信號(hào)指示接收到的數(shù)據(jù)包應(yīng)該丟棄。流控模塊(FlowControlBlock):流控模塊中的接收邏輯按如下方式識(shí)別MAC長(zhǎng)度/MACCAM識(shí)如果長(zhǎng)度/MAC控制幀規(guī)定的特定值,MAC不作響應(yīng),數(shù)據(jù)CAMMAC丟棄;如CRC64字節(jié),MAC也不進(jìn)行操作,然后數(shù)據(jù)包被MAC控制幀,在允許通過的情況下,傳送到軟件處理。MAC控制功能即使發(fā)送器自身處于暫停狀態(tài)兩個(gè)定時(shí)器和兩個(gè)對(duì)應(yīng)令與狀MACMAC的MACMAC控制幀傳送到帶緩沖DMA接口(BufferedDMADMA(BDMA)控制模塊(BDMAControlBDMA引擎控制一個(gè)發(fā)送緩沖區(qū)和一個(gè)接收緩沖區(qū)。BDMA發(fā)送緩沖區(qū)在數(shù)FIFO都有一個(gè)控制模塊用于控制數(shù)據(jù)從緩沖區(qū)的移入和移出。6.2.13BDMA控制模塊圖。6.2.13BDMA塊發(fā)送幀描述符(TransmitFrameDescriptor)接收幀描述符(ReceiveFrameDescriptor)幀數(shù)據(jù)緩沖(FrameDataBuffer)。0=填充模 1=無填充模0=CRC模 1=非CRC模0=1=使0=大端模式 1=小端模式0=遞減 1=遞增00=無無效字 01=一個(gè)無效字10=兩個(gè)無效字 11=三個(gè)無效字0= 1=[30:0]幀數(shù)據(jù)指針(FrameData[15:0]幀長(zhǎng)度(Frame[31:16]發(fā)送狀態(tài)(Tx[31:0]下一個(gè)幀描述符指針(NextFrameDescriptor0= 1=[30:0]幀數(shù)據(jù)指針(FrameData[15:0]幀長(zhǎng)度(FrameLength)[31:16]接收狀態(tài)(Rx[31:0]下一個(gè)幀描述符指針(NextFrameDescriptor數(shù)據(jù)幀(DataFrame):幀起始地址的最,所有者位,控制描述符的所有BDMA然后,BDMA引擎開始設(shè)置BDMA接收控制寄存器(BDMARXCON)中的BDMA接收使能位,當(dāng)接收到一個(gè)數(shù)據(jù)幀時(shí),數(shù)據(jù)幀被拷貝到由接收幀起始地址規(guī)定的器BDMACRC無填充位以太網(wǎng)控制器特殊功能寄存器(EthernetControllerSpecialBDMA(BDMAControlandStatus所有包含器地址的寄存器都必須按字對(duì)齊格式保存地址。表6-2-146-2-14BDMA偏移地操功能描BDMABDMABDMA0x9100-只CAM內(nèi)容(32字0x9200-BDMA發(fā)送緩沖(64字),僅0x9800-0x9900-BDMA接收緩沖(64字),僅BDMA(BDMATransmitControl6-2-15BDMA發(fā)送控制寄存器描位位功能描在BDMA模式下,該值加1即為發(fā)送尺寸。BTxBRST=0,則發(fā)送尺寸為1;BTxBRST=31,則發(fā)送尺寸為32BDMA當(dāng)數(shù)據(jù)幀的所有者位沒有設(shè)置時(shí),該位決定BDMA發(fā)保BDMA(BTx當(dāng)該位被置位時(shí),在MAC完成控制包的發(fā)送后BDMA發(fā)送控制包完成中斷產(chǎn)生BDMA BDMA該位置位時(shí),BDMA非所有者中斷使能。若當(dāng)前幀的所有者位不屬于BDMA控制器,且BTxSTSKO位置位時(shí)BDMABDMA送到這幾個(gè)位決定當(dāng)一個(gè)新的數(shù)據(jù)幀到達(dá)后,何時(shí)將BDMA發(fā)送緩沖區(qū)中新的幀數(shù)據(jù)移到MAC發(fā)送FIFO中?!?01”表示等到填滿BDMA發(fā)送緩沖器的1/8;“010”表示等到填滿BDMA發(fā)送緩沖器的2/8;“011”表示等到填滿BDMA發(fā)送緩沖器的3/8;“1xx”表示等到填滿BDMA發(fā)送緩沖器的但當(dāng)幀的最后一個(gè)數(shù)據(jù)到達(dá)BDMA發(fā)送緩沖區(qū)時(shí),則立即將其移入MAC的發(fā)送FIFO,無論這幾位的值如何當(dāng)該位置位時(shí),BDMA發(fā)送模塊使能,即使該位被禁止,緩沖區(qū)中的數(shù)據(jù)也要被移入MACFIFO,直到該位在以下情況自動(dòng)被12為“0”,且BTxSTSKO位為值BDMA塊該位置“1”,BDMA位BTxBRST31320=BDMA1=如果中斷使能,BDMA0=BDMA發(fā)送控制包完成中斷1=BDMAMAC0=BDMA發(fā)送空表中斷1=使能BDMA發(fā)送空表中斷當(dāng)BDAMTxPTR的值為空地(0x 0=BDMA非當(dāng)前發(fā)送幀所有者中斷1=BDMA0=BDMA發(fā)送緩沖區(qū)空中斷1=BDMA發(fā)送緩沖區(qū)空中斷。[13:11]BDMAMACBTxMSL)000=不等待。001=1/8010=2/8011=3/81xx=4/80=BDMA發(fā)送器1=BDMA0=1=BDMABDMA(BufferedDMAReceiveControl6-2-16BDMA接收控制寄存器描位位功能描在BDMA模式下,該值加1即為接收尺寸。BTxBRST=0,則發(fā)送尺寸為1;BTxBRST=31,則發(fā)送尺寸為32BDMA當(dāng)數(shù)據(jù)幀的所有者位沒有設(shè)置時(shí),該位決定BDMA接BDMA接收器BDMA當(dāng)該位被置位時(shí),BDMA控制器在每次將一個(gè)完整的數(shù)據(jù)幀移入器時(shí)產(chǎn)生中斷。BDMA BDMA所有者位不屬于BDMA控制器,且BRxSTSKO位置位BDMA當(dāng)該位置“1”時(shí)使能BDMA接收最大尺寸溢出中斷BDMA收大/小端BDMA對(duì)少個(gè)無效字節(jié)。這些無效字節(jié)由BDMA控制器在組裝“00=“01”=1個(gè)無效字節(jié)“10”=2個(gè)無效字節(jié)“11”=3個(gè)無效字節(jié)當(dāng)接收使能位置“1”時(shí),BDMA接收模塊使能,即使該位被,MAC也要接收數(shù)據(jù),直到MAC接收FIFO上溢。該位在以下情況自動(dòng)被34為“0”,且BRxSTSKO位為值BDMA塊位該位置“1”,BDMABDMA該位置“1”使能BDMA接收緩沖區(qū)空中斷BDMA能該位置“1”使能BDMA接收數(shù)據(jù)幀長(zhǎng)度通知中斷。該BDMA1BRxBRST=0,則接收尺寸為1BRxBRST=3132字;0=BDMA1=如果中斷使能,BDMA就產(chǎn)生中斷0=幀器地址遞減1=幀器地址遞增0=BDMA每接收幀中斷1=BDMA0=BDMA接收空表 1=BDMA0=BDMA非當(dāng)前接收幀所有者中斷1=BDMA0=BDMA接收最大尺寸溢出中斷1=BDMA0=1=小端數(shù)據(jù)幀格式(BDMA接收緩沖區(qū)中的幀數(shù)據(jù)在系統(tǒng)總線進(jìn)行端格式轉(zhuǎn)00=0111021130=禁用DBMA1=BDMA[15]BDMA復(fù)位0=1=BDMA0=接收緩沖空中斷1=0=接收數(shù)據(jù)幀長(zhǎng)度通知中斷1=BDMA控制器獲得接收幀的長(zhǎng)度值時(shí),BDMA發(fā)送幀描述符起始地址寄存器(BDMATransmitFrameDescriptorStartAddressRegister)操 BDMA發(fā)送幀描述符起始地址寄存6-2-17BDMA發(fā)送幀描述符起始地址寄存器描位位功能描BDMA描述符地址。在BDMABDMA接收幀描述符起始地址寄存器(BDMAReceiveFrameDescriptorStartAddressRegister)操 BDMA接收幀描述符起始地址寄器6-2-18BDMA接收幀描述符起始地址寄存器描位位功能描BDMA描述符地址。在BDMA更BDMA接收幀最大尺寸寄存器(BDMAReceiveFrameumSize6-2-19BDMA位位功能描BDMA該值控制每幀有多少個(gè)字節(jié)可以保存到器中,如果BDMA長(zhǎng)前幀的長(zhǎng)度值。BDMA(BDMAStatus6-2-19BDMA位位功能描BDMA當(dāng)該位置“1”時(shí),BDMA每接收到一個(gè)數(shù)據(jù)都移入器。若要產(chǎn)生下一幀接收中斷,該位必須清BDMABDMA非所有者當(dāng)該位置“1”時(shí),BDMA非當(dāng)前幀的所有者BDMABDMA空當(dāng)該位置“1”時(shí),BDMA接收緩沖區(qū)為空當(dāng)BDMA接收到當(dāng)前幀的長(zhǎng)度/類型域時(shí)該位保BDMA當(dāng)BDMA接收緩沖區(qū)多于一個(gè)數(shù)據(jù)幀時(shí)該位置BDMA該值為BDMABDMA制每當(dāng)MAC發(fā)送控制包完成時(shí)該位置“1”BDMA址空如果BDMATXPTR的值為空,該位置“1”BDMA如果BDMA發(fā)送器非當(dāng)前幀所有者,該位置“1”保BDMA沖空若BDMA保0=復(fù)位BDMA1=完全接收每一個(gè)數(shù)據(jù)幀并移入器0=1=當(dāng)前幀描述符的地址為空 0=BDMA為當(dāng)前幀的所有者止工作,BRxSTSKO位置“1”。0=BDMA1=0BDMA1BDMA0=1=通過BDMA接收最大幀尺寸寄存器BDMARXLSZ[31:16]的值,可以0BDMA1BDMA0=寫“1BDMA1MAC0=1=當(dāng)前幀描述符的地址為空 0BDMABTxSTSKO位置“1”。0BDMA1BDMA的方式將位、、、、、和20匹配地址器寄存器(ContentAddressMemory(CAM)有21個(gè)CAM用于暫??刂瓢陌l(fā)送和目的地址的識(shí)別,CAM存放目的每一個(gè)目的地址由6個(gè)字節(jié)組成,共占用32(32×4字節(jié)),因此最多可以21用戶可以使用CAM0、118傳送暫??刂瓢?,在傳送暫停控制包時(shí),目的MAC6-2-20CAM寄存器描位位功能描CAMCPU使用CAM內(nèi)容作為目的地址。要使用CAMMAC寄存器(MediaAccess發(fā)送與接收控制寄存器,CAM控制寄存器,一個(gè)用于網(wǎng)絡(luò)管理的計(jì)數(shù)器,以及一些6-2-216-2-21MAC偏移地操功能描MACCAMMACMACMACMACCAMT/T讀T讀讀MAC(MACControlMACMAC[10](MissRoll)為MACMAC6-2-22MAC控制寄存器描位位功能描停止請(qǐng)立即停軟件復(fù)當(dāng)該位置“1”時(shí),復(fù)位所有的MAC和MAC狀態(tài)機(jī)MAC當(dāng)該位置“1”時(shí),數(shù)據(jù)包在MAC發(fā)保MII該位用于選擇連接模式?!?”選擇10M接口,“0”擇MII保Missed保MDC當(dāng)該位為“0”時(shí),使能用于電源管理的MDCMissedRoll保10M狀該的值對(duì)應(yīng)Link10引腳的狀態(tài)保CAM(CAMControl無論CAM是否數(shù)據(jù)包,CAM控制寄存器有三個(gè)接收控制位用于接收特殊目—站包地址,第一個(gè)字節(jié)為偶數(shù)。例如:00-00-00-00-00-00FF-FF-FF-FF-FF-FF—廣播地址:FF-FF-FF-FF-FF-當(dāng)使能CAM的比較模式會(huì)根據(jù)CAM器的目的地址對(duì)到達(dá)的信息進(jìn)行過濾通過設(shè)置三個(gè)接收控制位,可以接收所有的數(shù)據(jù)包,當(dāng)對(duì)CAM控制寄存器時(shí),6-2-23CAM控制寄存器描位位功能描站包接廣播接(Negative當(dāng)該位為“0”時(shí),接收被CAM識(shí)別的數(shù)據(jù)包,其余的包丟棄。當(dāng)該位為“1”時(shí),接收未被CAM比較使保未使用MAC(MACTransitControlMACMAC6-2-24MAC發(fā)送控制寄存器描位位功能描發(fā)送使作快速回發(fā)送暫當(dāng)該位置“1”時(shí),發(fā)送一個(gè)暫停命令或其他的MAC制包。當(dāng)一個(gè)完整的MAC控制包發(fā)送后,發(fā)送暫停位自MII10MSQE該位置“1”使能MII10MSQE當(dāng)該位置“1”時(shí),若在發(fā)送過程中MAC發(fā)送FIFO空延遲使當(dāng)該位置“1”時(shí),若MAC延遲MAX_DEFERRAL時(shí)間:“0”=在100M0.32768毫秒;“1”=在10M時(shí)3.2768毫秒,則產(chǎn)生中斷過使延遲使當(dāng)該位置“1”時(shí),若在512位時(shí)間之后發(fā)生,則產(chǎn)當(dāng)該位置“1”時(shí),若在MAC的發(fā)送FIFO完成使 當(dāng)該位置“1”時(shí),無論MAC生中斷保MAC(MACTransitStatus當(dāng)有對(duì)應(yīng)的發(fā)生時(shí),MAC發(fā)送狀態(tài)寄存器MACTXSTAT設(shè)置發(fā)送狀態(tài)標(biāo)志,同時(shí),如果發(fā)送控制寄存器的相應(yīng)中斷使能位被設(shè)置,還產(chǎn)生中斷請(qǐng)求。6-2-25MAC發(fā)送狀態(tài)寄存器描位位功能描發(fā)送計(jì)該4位記錄在成功發(fā)送數(shù)據(jù)幀后產(chǎn)生的次數(shù)過發(fā)送延暫發(fā)送中當(dāng)該位置“1”時(shí)表示在包的發(fā)送過程中MAC發(fā)送空延當(dāng)該位置“1”時(shí)表示MAC延遲MAX_DEFERRAL時(shí)間:在100M0.32768毫秒;在10M3.2768當(dāng)該位置“1”時(shí)表示在規(guī)定的時(shí)間內(nèi)未報(bào)告SQE測(cè)試信當(dāng)該位置“1”表示在512位時(shí)間之后發(fā)生當(dāng)該位置“1”時(shí)表示在MAC的發(fā)送FIFO中檢測(cè)到奇偶當(dāng)該位置“1”時(shí)表示MAC發(fā)送停如果由于清除了TxEn位(MACTXCON中)HaltImm位(MACON中),使發(fā)送停止,該位置保MAC(MACReceiveControl通過設(shè)置MAC接收控制寄存器的數(shù)據(jù)包好位和所有的MAC錯(cuò)誤使能控制位,可6-2-26MAC接收控制寄存器描位位功能描接收使去除CRCCRC值當(dāng)該位置“1”時(shí),使能控制包到達(dá)MAC忽略CRC當(dāng)該位置“1”時(shí)禁用CRC保對(duì)齊使CRC使CRC無效或在接收時(shí)物理層產(chǎn)生Rx_er信號(hào),則產(chǎn)CRC中斷上溢使當(dāng)該位置“1”時(shí)使能上溢中斷。當(dāng)接收數(shù)據(jù)包時(shí)的接收FIFO滿,產(chǎn)生上溢中斷保當(dāng)該位置“1”時(shí),若在MAC的接收FIFO中檢測(cè)到奇偶好中斷保MAC(MACReceiveStatus當(dāng)有對(duì)應(yīng)的發(fā)生時(shí),MAC接收狀態(tài)寄存器MACRXSTAT設(shè)置接收狀態(tài)標(biāo)志,同時(shí),如果接收控制寄存器的相應(yīng)中斷使能位被設(shè)置,還產(chǎn)生中斷請(qǐng)求。6-2-25MAC接收狀態(tài)寄存器描位位功能描保當(dāng)接收的數(shù)據(jù)包為MAC控制幀(Type8808H),或當(dāng)CAM能識(shí)別包目的地址,或幀長(zhǎng)度為64字節(jié),該位置接收中10M狀當(dāng)數(shù)據(jù)包從7線接口接收時(shí),該位置“1”,當(dāng)數(shù)據(jù)包MII接收時(shí),該位對(duì)齊錯(cuò)當(dāng)數(shù)據(jù)幀的長(zhǎng)度(按位)不是8的整數(shù)倍或CRC無CRC當(dāng)數(shù)據(jù)幀尾部的CRC與計(jì)算值不匹配時(shí),或在包的接收過程中物理層PHY發(fā)出Rx_er信號(hào)時(shí),該位置“1”。溢出錯(cuò)當(dāng)需要接收的數(shù)據(jù)而MAC接收FIFO滿時(shí),該位置當(dāng)MAC1518保如果在MAC接收FIFO中檢測(cè)到奇偶錯(cuò)時(shí),該位置“1”。當(dāng)MAC接收控制寄存器中的EnGood為“1”接收停如果由于清除了RxEn位(MACRXCON中)或設(shè)置HaltImm位(MACON中)保MAC(MACStationManagementData6-2-26位位功能描該寄存器的內(nèi)容為用于站管理功能的16MAC(MACStationManagementControlandAddress6-2-27站管理控制與地址寄存器描位位功能描5位的內(nèi)容為物理層寄存器地址5位的內(nèi)容為物理層設(shè)備的地址寫忙時(shí),MAC控制器自動(dòng)清除該位無前導(dǎo)當(dāng)該位置“1”時(shí),前導(dǎo)不送到PHY,為“0”時(shí)送到MDC周用于控制MDC周期 MDC周 .. MDC周期STACON[15:13]×2+16保CAM(CAMEnableCAM使能寄存器,CAMEN,標(biāo)識(shí)哪一個(gè)CAM地址有效,可用于直接的比較工作模寄存器的020對(duì)應(yīng)于21CAM地址的有效CAM少于21個(gè)時(shí),6-2-28CAM使能寄存器描位位功能描CAM若某位置“1”,則對(duì)應(yīng)的CAM地址有效,則對(duì)應(yīng)的CAM地址無效。保MAC(MACMissedErrorCountMAC(T)的值指示由于各種錯(cuò)誤丟棄的數(shù)據(jù)包數(shù)6-2-29MAC丟包錯(cuò)誤計(jì)數(shù)寄存器描位位功能描 CRC計(jì) 接收到的CRC錯(cuò)誤包數(shù)量。如果Rx_StatCRC錯(cuò)誤 由于MAC接收FIFO溢出、奇偶錯(cuò)誤、或Rx_En位清除等原因,被MAC控制器的有效包數(shù)量。該數(shù)字不包括被CAM的包數(shù)量。保MAC(MACReceivedPauseCount 6-2-30MAC接收暫停計(jì)數(shù)寄存器描位位功能描 該計(jì)數(shù)值指示由于接收來自MAC的暫停控制操作包而MAC暫停計(jì)數(shù)寄存器(MACRemotePauseCount 6-2-31MAC接收暫停計(jì)數(shù)寄存器描位位功能描暫停計(jì) 該計(jì)數(shù)值指示由于發(fā)送暫??刂撇僮靼餗AC(MACTransmitControlFrameStatusMAC發(fā)送控制幀狀態(tài)寄存器(ETXSTAT)是一個(gè)基于RAM的寄存器,提供MAC控DMA引擎該寄存器的值并產(chǎn)生中斷通知系統(tǒng)MAC控制包的發(fā)送已經(jīng)完成6-2-32MAC位位功能描該16位的值指示MAC控制包發(fā)送到站的狀態(tài)信息。該值由DMA引擎。以太網(wǎng)控制器的操作(EthernetControllerMAC(MACFrameandPackerMAC發(fā)送所有域的每一個(gè)字節(jié),除幀檢列FCS外,總是最低位。在6-2-33MAC 前7 送1SFD的每個(gè)位為 目的地66MAC不對(duì)源地址字節(jié)作檢測(cè),但作為一個(gè)有效的站地“2當(dāng)該長(zhǎng)度域大于1500字節(jié)時(shí),MAC將其作為類型域處理。該域小于或等于150046字046如果LCC數(shù)據(jù)少于46字節(jié),MAC發(fā)送時(shí)填充全“0”幀檢4FCS域包含16位的錯(cuò)誤檢測(cè)碼6.2.14IEEE802.3以太網(wǎng)包(幀)6.2.14一個(gè)IEEE802.3(幀)的MAC(OptionsthatAffecttheStandardMAC短包模式允許LCC46字節(jié),通過選項(xiàng)可以不要填充和支持短目的地址格式(DestinationAddress016進(jìn)制格式:FF-FF-FF-FF-FF-FF。1位區(qū)別目的地址是局部管理地址還是全局管理地址,若為全局管理地址,0=獨(dú)立(單播)1=組(多播)0=1=特定流控目的地址(SpecialFlowControlDestinationMAC能接收到包含該特定目的元必須使能、CAM必須有效。發(fā)送一個(gè)幀(Transmittinga這些條件通常在BDMA控制器初始化完成以后設(shè)置,然后由系統(tǒng)使用Tx_wr#和Tx_EOF信號(hào)傳輸字節(jié)數(shù)據(jù)到發(fā)送數(shù)據(jù)緩沖區(qū)。制權(quán),此時(shí),發(fā)送模塊請(qǐng)求的數(shù)據(jù)并發(fā)送,直到系統(tǒng)輸入Tx_EOF信號(hào)通知到MIIBDMA/MACBDI(BDITransmitBDI發(fā)送操作是一個(gè)簡(jiǎn)單的FIFO機(jī)制BDMA引擎保存待發(fā)送的MAC成復(fù)位后,發(fā)送FIFO為空,發(fā)送模塊發(fā)出Tx_rdy信號(hào),發(fā)送被。要使能發(fā)送,系統(tǒng)必須設(shè)置發(fā)送控制寄存器的發(fā)送使能位,此外,發(fā)送FIFO中必須有8個(gè)字MII(MIITransmitOperation)接收一個(gè)幀(Receivinga,MII提供0到7個(gè)前導(dǎo)字節(jié),然后是起始幀分隔符(SFD)。接收模塊首先檢測(cè)前導(dǎo)字節(jié),然后8個(gè)字節(jié)中尋找SFD(),如果不能檢測(cè)到SFD,就將,其到接收FIFO中,同時(shí)發(fā)出Rx_rdy信號(hào).接收模塊然后接收其后的數(shù)據(jù)并將FIFO。S3C4510S3C4510B關(guān)于以太網(wǎng)控制器的初始化和發(fā)送、接收編程,讀者可參考已經(jīng)移植到S3C4510B的uClinux源代碼,該源代碼有詳細(xì)的描述,限于篇幅,不在此列出。源Flash器工作原理與編程示Flash器的操作包括對(duì)Flash的擦除和燒寫,由前面所介紹的Flash器的工作原理可知對(duì)Flash器的編程與擦除是與具體的器件型號(hào)緊密相關(guān)的,由于不同廠商的Flash器在操作命令上可能會(huì)有一些細(xì)微的差別,F(xiàn)lash器的燒寫擦除程序一般不具有通用性針對(duì)不同廠商不同型號(hào)的Flash器,的編程方法,其他廠商或型號(hào)的Flash器的編程方法與之類似。HY29LV160是HYUNDAI公司生產(chǎn)的Flash器,其主要特點(diǎn)有:3V單電源供電,可使內(nèi)部產(chǎn)生高電壓進(jìn)行編程和擦除操作;支持JEDEC單電源Flash器CFI(CommonFlashMemoryInterface)特性;只需向其命令寄存器寫入標(biāo)詢特定的引腳或數(shù)據(jù)線操作是否完成可以對(duì)任一扇區(qū)進(jìn)行讀寫或擦除操作,向Flash器的特定寄存器寫入地址和數(shù)據(jù)命令,就可對(duì)Flash器進(jìn)行0xffHY29LV160編程命令、整片擦除命令以及對(duì)應(yīng)的HY29LV160HY29LV160的地?cái)?shù)地?cái)?shù)地?cái)?shù)地?cái)?shù)字字(8位)操作,共需要四個(gè)總線周期,分四步完成,前兩個(gè)周期是周期,第三地?cái)?shù)地?cái)?shù)地?cái)?shù)地?cái)?shù)整字擦字地?cái)?shù)地?cái)?shù)整擦字字Ready/Busy引腳(RY/BY#)。DQ6DQ6連續(xù)跳變,直至操作結(jié)束才停止跳變;第三種方法是使用數(shù)據(jù)線的DQ7DQ5位,DQ7位在編程的數(shù)據(jù);DQ5的狀態(tài)為“1”時(shí)表示操作超時(shí),此時(shí)應(yīng)再讀一次DQ7的狀態(tài),若DQ7對(duì)于第法,需要占用系統(tǒng)的I/O口以判斷引腳RY/BY

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論