freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于usb總線的數(shù)據(jù)通信系統(tǒng)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-07-24 18:56 本頁面
 

【文章內(nèi)容簡介】 供電模式或外部5V電源供電。由于C8051F320中的USB收發(fā)器內(nèi)部集成了上拉電阻,因而不需要任何外部器件便可直接與USB接口相連。,J3為USB接口,采用插針J2配合跳線來轉(zhuǎn)換系統(tǒng)的供電模式,當(dāng)跳線將J2的2腳接通時(shí)REGIN與外部5V電源接通,由外部電源供電;當(dāng)跳線將J2的3腳接通時(shí)REGIN與VBUS接通,可由USB總線供電。C8051F320器件內(nèi)部包含一個(gè)5V至3V的穩(wěn)壓器(REG0)。當(dāng)被使能時(shí),REG0輸出連到VDD引腳,并可為外部器件提供電源??梢杂密浖ㄟ^寄存器REG0CN中的REGEN位使能/禁止REG0。當(dāng)在USB網(wǎng)絡(luò)中使用C8051F320器件時(shí),VBUS信號(hào)必須被連到VBUS引腳。當(dāng)器件工作在總線供電方式時(shí),VBUS信號(hào)只應(yīng)連接到REGIN引腳。 USB接口電路圖 系統(tǒng)復(fù)位電路,外部/RST引腳提供了使用外部電路強(qiáng)制MCU進(jìn)入復(fù)位狀態(tài)的手段。在/RST引腳上加一個(gè)低電平有效信號(hào)將導(dǎo)致MCU進(jìn)入復(fù)位狀態(tài)。盡管在內(nèi)部有弱上拉,但提供一個(gè)外部上拉和對/RST引腳去耦可以以防止強(qiáng)噪聲引起復(fù)位,提高了抗干擾能力。C8051F320提供了上電復(fù)位、掉電復(fù)位、外部復(fù)位、時(shí)鐘丟失監(jiān)測器復(fù)位、比較器0復(fù)位、PCA看門狗定時(shí)器復(fù)位、FLASH錯(cuò)誤復(fù)位、軟件復(fù)位、USB復(fù)位9種復(fù)位源。在進(jìn)入復(fù)位狀態(tài)時(shí),將發(fā)生以下過程:● CIP51停止程序執(zhí)行;●特殊功能寄存器(SFR)被初始化為所定義的復(fù)位值;●外部端口引腳被置于一個(gè)已知狀態(tài);●中斷和定時(shí)器被禁止。所有的SFR都被初始化為預(yù)定值,SFR中各位的復(fù)位值在SFR的詳細(xì)說明中定義。在復(fù)位期間內(nèi)部數(shù)據(jù)存儲(chǔ)器的內(nèi)容不發(fā)生改變,復(fù)位前存儲(chǔ)的數(shù)據(jù)保持不變。但由于堆棧指針SFR被復(fù)位,堆棧實(shí)際上已丟失,盡管堆棧中的數(shù)據(jù)未發(fā)生變化。端口I/O鎖存器的復(fù)位值為0xFF(全部為邏輯‘1’),處于漏極開路方式。在復(fù)位期間和復(fù)位之后弱上拉被使能。對于VDD監(jiān)視器和上電復(fù)位,/RST引腳被驅(qū)動(dòng)為低電平,直到器件退出復(fù)位狀態(tài)。在退出復(fù)位狀態(tài)時(shí),程序計(jì)數(shù)器(PC)被復(fù)位,MCU使用內(nèi)部振蕩器作為默認(rèn)的系統(tǒng)時(shí)鐘??撮T狗定時(shí)器被使能,使用系統(tǒng)時(shí)鐘的12分頻作為其時(shí)鐘源。程序從地址0x0000開始執(zhí)行。 系統(tǒng)晶振電路。系統(tǒng)在正常運(yùn)行期間可以使用外部高頻率高精確度的時(shí)鐘,在系統(tǒng)休眠或者特殊功能場合將時(shí)鐘切換到內(nèi)部低頻率時(shí)鐘,以便降低功耗。同時(shí)當(dāng)使用外部晶振的時(shí)候需要將P0SKIP寄存器設(shè)為0x30。C8051F320有一個(gè)可編程內(nèi)部振蕩器、一個(gè)外部振蕩器驅(qū)動(dòng)電路和一個(gè)4倍時(shí)鐘乘法器。可以通過對OSCICN和OSCICL寄存器編程來使能/禁止內(nèi)部振蕩器和調(diào)節(jié)其輸出頻率()。外部振蕩器電路可以驅(qū)動(dòng)外部晶體、陶瓷諧振器、電容或RC網(wǎng)絡(luò)。也可以使用一個(gè)外部CMOS時(shí)鐘提供系統(tǒng)時(shí)鐘。對于晶體和陶瓷諧振器配置,晶體/陶瓷諧振器必須并接到XTAL1和XTAL2引腳。外部振蕩器由外部振蕩器控制寄存器OSCXCN來進(jìn)行配置。系統(tǒng)時(shí)鐘(SYSCLK)可以來自內(nèi)部振蕩器、外部振蕩器電路或4倍時(shí)鐘乘法器二分頻。寄存器CLKSEL中的CLKSL[1:0]位選擇用作系統(tǒng)時(shí)鐘的振蕩源。當(dāng)選擇外部振蕩器作為系統(tǒng)時(shí)鐘時(shí),CLKSL[1:0]必須被設(shè)置為01b。當(dāng)選擇內(nèi)部振蕩器作為系統(tǒng)時(shí)鐘時(shí),外部振蕩器仍然可以給外設(shè)(定時(shí)器、PCA、USB)提供時(shí)鐘。系統(tǒng)時(shí)鐘可以在內(nèi)部振蕩器、外部振蕩器和4倍時(shí)鐘乘法器之間自由切換,只要所選擇的振蕩器被使能并穩(wěn)定運(yùn)行。USB時(shí)鐘(USBCLK)可以來自內(nèi)部振蕩器、外部振蕩器電路或4倍時(shí)鐘乘法器。寄存器CLKSEL中的USBCLK[2:0]位選擇用作USB時(shí)鐘的振蕩源。USB時(shí)鐘可以來自4倍時(shí)鐘乘法器輸出、內(nèi)部振蕩器分頻或外部振蕩器分頻。當(dāng)USB0工作在全速方式時(shí),USB時(shí)鐘必須是48 MHz;,USB時(shí)鐘必須是6MHz。 UART串口通信設(shè)計(jì)系統(tǒng)通過UART口與數(shù)傳模塊進(jìn)行數(shù)據(jù)傳輸。C8052F320提供的UART0是一個(gè)異步、全雙工串口,它提供標(biāo)準(zhǔn)8051串行口的方式1和方式3。使用UART口的時(shí)候需要將端口I/O交叉開關(guān)寄存器0 XBR0的位0置“1”。UART0具有增強(qiáng)的波特率發(fā)生器電路,有多個(gè)時(shí)鐘源可用于產(chǎn)生標(biāo)準(zhǔn)波特率。UART0有兩個(gè)相關(guān)的特殊功能寄存器:串行控制寄存器(SCON0)和串行數(shù)據(jù)緩沖器(SBUF0)。用同一個(gè)SBUF0地址可以訪問發(fā)送寄存器和接收寄存器。寫SBUF0時(shí)自動(dòng)訪問發(fā)送寄存器;讀SBUF0時(shí)自動(dòng)訪問接收寄存器,不可能從發(fā)送數(shù)據(jù)寄存器中讀SBUF0時(shí)自動(dòng)訪問接收寄存器,不可能從發(fā)送數(shù)據(jù)寄存器中讀數(shù)據(jù)。 UART電路圖 調(diào)試電路,J4為JTAG口。C8051F320器件具有片內(nèi)Silicon Labs 2線(C2)接口調(diào)試電路,支持使用安裝在最終應(yīng)用系統(tǒng)中的產(chǎn)品器件進(jìn)行非侵入式、全速的在系統(tǒng)調(diào)試。Silicon Labs的調(diào)試系統(tǒng)支持觀察和修改存儲(chǔ)器和寄存器,支持?jǐn)帱c(diǎn)和單步執(zhí)行。不需要額外的目標(biāo)RAM、程序存儲(chǔ)器、定時(shí)器或通信通道。在調(diào)試時(shí)所有的模擬和數(shù)字外設(shè)都正常工作。當(dāng)MCU單步執(zhí)行或遇到斷點(diǎn)而停止運(yùn)行時(shí),所有的外設(shè)(USB、ADC和SMBus除外)都停止運(yùn)行,以保持同步。,PC機(jī)通過USB與串行適配器UEC5連接,UEC5又通過電纜與板上的JTAG口相連接。通過和Silicon Labs IDE可以方便的將程序?qū)懭肫?。在連接時(shí)要把IDE的Option—Connection Options選項(xiàng)()選為USB DebugAdapter,Debug Interface選擇為C2。然后點(diǎn)擊Connect按鈕或者ALT+C就可以將IDE與目標(biāo)板連接起來了。 JTAG口電路圖 開發(fā)/在系統(tǒng)調(diào)試示意圖第四章 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件設(shè)計(jì)的組成系統(tǒng)軟件主要包括C8051 F320數(shù)據(jù)通信板的固件(Firmware)程序設(shè)計(jì)、主機(jī)上的USB硬件驅(qū)動(dòng)程序和主機(jī)應(yīng)用程序。: 軟件系統(tǒng)組成對于一個(gè)USB設(shè)備,分為功能層、USB設(shè)備層、USB總線接口層。在USB系統(tǒng)中只允許有一個(gè)主機(jī),它可以被分為三個(gè)不同的功能模塊:客戶軟件、USB系統(tǒng)軟件和USB總線接口。客戶軟件負(fù)責(zé)和USB設(shè)備的功能單元進(jìn)行通信,以實(shí)現(xiàn)其特定功能,一般由開發(fā)人員自行開發(fā)。客戶軟件不能直接訪問USB設(shè)備,其與功能單元間的通信必須經(jīng)過USB系統(tǒng)軟件和USB總線接口模塊才能夠?qū)崿F(xiàn)。它一般包括USB設(shè)備驅(qū)動(dòng)程序和界面應(yīng)用程序兩部分。USB設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)和USB系統(tǒng)軟件進(jìn)行接口,由它向USB總線驅(qū)動(dòng)程序發(fā)出I/O請求包(IRP)以啟動(dòng)一次USB數(shù)據(jù)傳輸。界面應(yīng)用程序負(fù)責(zé)和USB設(shè)備驅(qū)動(dòng)程序進(jìn)行接口,以操縱USB設(shè)備并向用戶提供可視化的操作。USB系統(tǒng)軟件負(fù)責(zé)和USB邏輯設(shè)備進(jìn)行配置通信,并管理客戶軟件啟動(dòng)的數(shù)據(jù)傳輸。它包括:USB總線驅(qū)動(dòng)程序(USBD)和USB主控制器驅(qū)動(dòng)程序(HCD)。USB總線接口包括主控制器和根集線器兩個(gè)部分。根集線器為USB系統(tǒng)提供連接起點(diǎn),主控制器負(fù)責(zé)完成主機(jī)和USB設(shè)備間數(shù)據(jù)的實(shí)際傳輸。USB設(shè)備由3個(gè)功能模塊組成:USB總線接口、USB邏輯設(shè)備、功能單元。USB總線接口是USB設(shè)備中的串行接口引擎(SIE);USB邏輯設(shè)備被USB系統(tǒng)軟件看作是一個(gè)端點(diǎn)的集合;功能單元被客戶軟件看作是一個(gè)接口的集合。功能層負(fù)責(zé)實(shí)現(xiàn)USB設(shè)備的特定功能,該層不理解USB的串行傳輸機(jī)制,而只是知道應(yīng)和USB設(shè)備傳輸哪些數(shù)據(jù)。根據(jù)實(shí)際情況的需要,客戶軟件在和USB設(shè)備的功能單元進(jìn)行通信時(shí)可以采用如下4種傳輸類型。USB設(shè)備層實(shí)現(xiàn)了主機(jī)和USB設(shè)備間的配置通信,如為USB設(shè)備分配地址、讀取其配置描述符等。該層理解USB通信機(jī)制和功能層所要求的傳輸特性。USB總線接口層實(shí)現(xiàn)了主機(jī)和USB設(shè)備間數(shù)據(jù)的實(shí)際傳輸。 USB系統(tǒng)的分層在USB總線上,所有與USB設(shè)備功能單元的數(shù)據(jù)傳輸都是由客戶軟件啟動(dòng)的,而且必須經(jīng)過主機(jī)的USB系統(tǒng)軟件和USB總線接口模塊才能將數(shù)據(jù)發(fā)送到USB設(shè)備。其傳輸過程涉及4個(gè)軟硬件實(shí)體:客戶軟件、USB總線驅(qū)動(dòng)程序、USB主控制器驅(qū)動(dòng)程序和USB主控制器。圖中的向下的箭頭表示了客戶軟件向USB設(shè)備發(fā)送數(shù)據(jù)的情況,其傳輸步驟如下:(1) 客戶軟件把要傳輸?shù)臄?shù)據(jù)放入數(shù)據(jù)緩沖區(qū),并向USB總線驅(qū)動(dòng)程序發(fā)出IRP,以請求數(shù)據(jù)傳輸。(2) USB總線驅(qū)動(dòng)程序響應(yīng)客戶軟件發(fā)出的IRP,并將其中的數(shù)據(jù)轉(zhuǎn)化為一個(gè)個(gè)具有USB格式的事務(wù)處理,然后將其向下傳遞。(3) USB主控制器驅(qū)動(dòng)程序負(fù)責(zé)為這些事務(wù)處理建立一系列以幀/小幀為單位的事務(wù)處理列表,并保證其不會(huì)超過USB的帶寬。(4) USB主控制器負(fù)責(zé)讀取事務(wù)處理列表,并將其中的事務(wù)處理以信息包為單位發(fā)送到USB總線上,且傳輸速率可以使低速、全速或高速。(5) USB設(shè)備在接收到這些信息包后,SIE自動(dòng)將其解包并將數(shù)據(jù)放入指定端點(diǎn)的接受緩沖區(qū)內(nèi),由芯片固件對其進(jìn)行處理。同樣,客戶軟件在接收USB設(shè)備發(fā)來的數(shù)據(jù)時(shí)也必須經(jīng)過上述4個(gè)軟件實(shí)體。對于C8051F320采集板來說,程序部分也要包含3個(gè)部分的內(nèi)容。 USBXpress數(shù)據(jù)流在C8051F320中建立數(shù)組Out Packet用于存儲(chǔ)從主機(jī)收到的數(shù)據(jù)包,和In_Packet[]存儲(chǔ)將要送到主機(jī)的包,數(shù)組中的每一個(gè)字節(jié)都可以靈活的在程序中設(shè)定其表示的狀態(tài)或者傳送的數(shù)據(jù)。同樣在主機(jī)VB應(yīng)用程序中建立IOBuf()來存儲(chǔ)主機(jī)程序中的狀態(tài)和需要傳輸?shù)臄?shù)據(jù)。通過調(diào)用主機(jī)API和固件庫函數(shù)來建立兩者的數(shù)據(jù)傳輸。例如設(shè)定Out_Packet[0]為LED燈1的狀態(tài),Out_Packet[1]為LED2的狀態(tài),通過下列程序段就可以由主機(jī)應(yīng)用程序發(fā)送的包的頭兩位來實(shí)現(xiàn)主機(jī)對數(shù)據(jù)采集板LED燈狀態(tài)的控制。同樣如果用In_Packet[0]和In_Packet[1]來存儲(chǔ)按鍵1和按鍵2的狀態(tài)也能實(shí)現(xiàn)按鍵狀態(tài)向主機(jī)應(yīng)用程序的傳送。if(Out_Packet[0]==1)Led1=1。else Led1=0。if(Out_Packet[1]==1)Led2=1。else Led2=0。In_Packet[0]=Switch1State。In_Packet[1]=Switch2State。 USB固件程序設(shè)計(jì)系統(tǒng)固件程序軟件設(shè)計(jì)時(shí)使用Silicon Laboratories集成開發(fā)環(huán)境(IDE),完成單片機(jī)程序的編寫、調(diào)試、編譯、程序下載工作。它的主要特點(diǎn)包括:● 項(xiàng)目界面,全功能窗口字體可配置的編輯器;● 調(diào)試器具有設(shè)置斷點(diǎn),單步指令運(yùn)行等功能;● 工具鏈接集成支持匯編器,編譯器和鏈接器;● 可定制的工具菜單用于集成其它編譯器或開發(fā)工具;● CYGNAL配置向?qū)Э蔀橹付ǖ哪繕?biāo)環(huán)境產(chǎn)生配置代碼。系統(tǒng)軟件按單片機(jī)C語言編寫,相對于冗長、復(fù)雜、容易出錯(cuò)的匯編語言來說,C可實(shí)現(xiàn)模塊化編程技術(shù),使得程序有很好的可移植性,而且有更容易開發(fā)和調(diào)試程序。但C語言編寫程序在匯編后有代碼效率低,實(shí)時(shí)性差的缺點(diǎn)。程序軟件編寫時(shí)候,需要充分了解C8051F320單片機(jī)的硬件結(jié)構(gòu),對程序變量、數(shù)據(jù)結(jié)構(gòu)、寄存器等進(jìn)行優(yōu)化處理,提高單片機(jī)C語言的編譯運(yùn)行的可靠性和效率,減少程序編譯后系統(tǒng)運(yùn)行的不穩(wěn)定因素,提高系統(tǒng)的穩(wěn)定性能。對于C8051F320數(shù)據(jù)采集板來說,固件程序應(yīng)當(dāng)包含兩大部分功能:實(shí)現(xiàn)USB接口數(shù)據(jù)傳輸功能和串口中斷服務(wù)。: USB接口數(shù)據(jù)傳輸程序設(shè)計(jì)C801F320的USB控制器內(nèi)核會(huì)自動(dòng)執(zhí)行大多數(shù)的底層協(xié)議任務(wù),當(dāng)數(shù)據(jù)被成功的傳送或者接收以及發(fā)生一個(gè)標(biāo)志事件(復(fù)位,恢復(fù),Stall等等)時(shí)會(huì)生成一個(gè)中斷,關(guān)鍵性的固件任務(wù)包括:解碼和處理輸入的控制請求,數(shù)據(jù)I/O,管理USB設(shè)備的狀態(tài)并處理請求,處理懸掛、復(fù)位和恢復(fù)事件。Silicon Laboratories提供的USBXpress開發(fā)工具包中提供了固件庫來在全速狀態(tài)下操作C8051F320的USB控制器。下列設(shè)備接口函數(shù)的設(shè)定實(shí)現(xiàn)在C8051F320上的一個(gè)應(yīng)用程序接口(API)。這些函數(shù)提供了一個(gè)通過C8051F320的USB控制器的通用I/O接口,而不需要考慮底層的USB硬件細(xì)節(jié)或者協(xié)議。API在Keil C51中以一個(gè)庫文件的形式被提供。設(shè)備固件必須在Keil C51中開發(fā)。設(shè)備接口函數(shù)有:USB_Clock_Start()–初始化USB時(shí)鐘USB_Init()–使能USB接口Block_Write()–通過USB寫數(shù)據(jù)到主機(jī)Block_Read()–通過USB從主機(jī)讀數(shù)據(jù)Get_Interrupt_Source()–顯示一個(gè)API中斷的原USB_Int_Enable()–使能API中斷USB_Int_Disable()–禁用API中斷USB_Disable()–禁用USB接口USB_Suspend()–懸掛USB中斷這個(gè)API使用中斷模式。使用者必須在位于0x0083(interrupt 16)向量地址中提供一個(gè)中斷句柄。這個(gè)句柄將在任何USB API中斷上被調(diào)用。一旦進(jìn)入這個(gè)ISR,調(diào)用Get_Interrupt_Source函數(shù)來確定中斷的來源(這個(gè)調(diào)用也清除未決的中斷標(biāo)志位)。USB0硬件中斷位于向量地址0x0043(interrupt 8)被USBXpress聲明,并且被用來處理底層USB協(xié)議細(xì)節(jié)。USB API interrupt 16是一個(gè)由USBXpress固件庫生成的虛擬的中斷,無論何時(shí)當(dāng)用戶代碼需要被通知一個(gè)USBXpress事件的時(shí)候被使用。這個(gè)事件在Get_Interrupt_Source函數(shù)的描述中被定義。 串口中斷服務(wù)程序設(shè)計(jì)C8051F320提供的UART0是一個(gè)異步、全雙工串口,它提供標(biāo)準(zhǔn)8051串行口的方式1和方式3,有多個(gè)時(shí)鐘源可用于產(chǎn)生標(biāo)準(zhǔn)波特率。由于USB采用全速方式傳輸,所以USB的時(shí)鐘必須為內(nèi)部12MHz時(shí)鐘的4倍頻即48MHz,以此為UART的時(shí)鐘會(huì)產(chǎn)生誤差。亦可使用外部時(shí)鐘作為波特率發(fā)生器。本設(shè)計(jì)使用定時(shí)器T1的時(shí)鐘生成系統(tǒng)所使用的9600bit/s的波特率,實(shí)際波特率為9615,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1