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

正文內(nèi)容

基于usb總線的數(shù)據(jù)通信系統(tǒng)畢業(yè)設(shè)計(jì)論文-資料下載頁(yè)

2025-07-01 09:37本頁(yè)面

【導(dǎo)讀】導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝。為獲得及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過(guò)的材料。有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);目的前提下,學(xué)校可以公布論文的部分或全部?jī)?nèi)容。他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)。人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果。涉密論文按學(xué)校規(guī)定處理。等),文科類(lèi)論文正文字?jǐn)?shù)不少于萬(wàn)字。符合國(guó)家技術(shù)標(biāo)準(zhǔn)規(guī)范。開(kāi)發(fā)過(guò)程,并給出了具體實(shí)現(xiàn)方案。軟件設(shè)計(jì)包括固件程序設(shè)計(jì)、驅(qū)動(dòng)程序設(shè)計(jì)和應(yīng)用程序設(shè)計(jì)三大部分。序流程圖和采用的固件函數(shù)庫(kù)。應(yīng)用程序的設(shè)計(jì)部分介紹了所采用的API函數(shù),并給出了部分源代碼和程序流程圖。者上位機(jī)發(fā)出控制信息傳到數(shù)據(jù)采集系統(tǒng)去。相對(duì)于傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)具有精度高、傳輸速率快、功耗低、體積小、抗干擾能力強(qiáng)等特點(diǎn),具有很好的應(yīng)用前景。

  

【正文】 內(nèi)容。 數(shù)據(jù)的傳輸過(guò)程如圖 所示。 圖 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()來(lái)存儲(chǔ)主機(jī)程序中的狀態(tài)和需要傳輸?shù)臄?shù)據(jù)。通過(guò)調(diào)用主機(jī) API 和固件庫(kù)函數(shù)來(lái)建立兩者的數(shù)據(jù)傳輸。例如設(shè)定Out_Packet[0]為 LED 燈 1 的狀態(tài), Out_Packet[1]為 LED2 的狀態(tài),通過(guò)下列程序段 就可以由主機(jī)應(yīng)用程序發(fā)送的包的頭兩位來(lái)實(shí)現(xiàn)主機(jī)對(duì)數(shù)據(jù)采集板 LED 燈狀態(tài)的控制。同樣如果用 In_Packet[0]和 In_Packet[1]來(lái)存儲(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。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) else Led2=0。 In_Packet[0]=Switch1State。 In_Packet[1]=Switch2State。 圖 數(shù) 據(jù)傳輸示意圖 USB 固件 程序 設(shè)計(jì) 系統(tǒng)固件程序軟件設(shè)計(jì)時(shí)使用 Silicon Laboratories 集成開(kāi)發(fā)環(huán)境( IDE),完成單片機(jī)程序的編寫(xiě)、調(diào)試、編譯、程序下載工作。它的主要特點(diǎn)包括: ● 項(xiàng)目界面,全功能窗口字體可配置的編輯器; ● 調(diào)試器具有設(shè)置斷點(diǎn),單步指令運(yùn)行等功能; ● 工具鏈接集成支持匯編器,編譯器和鏈接器; ● 可定制的工具菜單用于集成其它編譯器或開(kāi)發(fā)工具; ● CYGNAL 配置向?qū)Э蔀橹付ǖ哪繕?biāo)環(huán)境產(chǎn)生配置代碼。 系統(tǒng)軟件按單片機(jī) C 語(yǔ)言編寫(xiě),相對(duì)于冗長(zhǎng)、復(fù)雜、容易出錯(cuò)的匯編語(yǔ)言來(lái)說(shuō), C可實(shí)現(xiàn)模塊化編程技術(shù),使得程序有很好的可移植性,而且有更容易開(kāi)發(fā)和調(diào)試程序。但 C 語(yǔ)言編寫(xiě)程序在匯編后有代碼效率低,實(shí)時(shí)性差的缺點(diǎn)。程序軟件編寫(xiě)時(shí)候,需要充分了解 C8051F320 單片機(jī)的硬件結(jié)構(gòu),對(duì)程序變量、數(shù)據(jù)結(jié)構(gòu)、寄存器等進(jìn)行優(yōu)化處理,提高單片機(jī) C 語(yǔ)言的編譯運(yùn)行的可靠性和效率,減少程序編譯后系統(tǒng)運(yùn)行的不穩(wěn)定內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 因素,提高系統(tǒng)的穩(wěn)定性能。對(duì)于 C8051F320 數(shù)據(jù)采集板來(lái)說(shuō),固件程序應(yīng)當(dāng)包含兩大部分功能:實(shí)現(xiàn) USB 接口數(shù)據(jù)傳輸功能 和 串口中斷服務(wù) 。主程序的框圖如圖 所示: 主 程 序 開(kāi) 始初 始 化 時(shí) 鐘 、 數(shù) 字 交 叉 開(kāi) 關(guān) 、 U S B控 制 器 、 定 時(shí) 器主 機(jī) U S B 口 連 接好 ?L E D 燈 停 止 閃 爍 處 理開(kāi) 啟 串 口 和 定 時(shí) 器 中 斷 等 處 理進(jìn) 入 空 閑 狀 態(tài)L E D 燈 閃 爍處 理YN 圖 固件主程序流程圖 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ù)包括:解碼和處理輸入的控制請(qǐng)求,數(shù)據(jù) I/O,管理 USB 設(shè)備的狀態(tài)并處理請(qǐng)求,處理懸掛、復(fù)位和恢復(fù)事件。 Silicon Laboratories 提供的 USBXpress 開(kāi)發(fā)工具包中提供了固件庫(kù)來(lái)在全速狀態(tài)下操作 C8051F320 的 USB 控制器。下列設(shè)備接口 函數(shù)的設(shè)定實(shí)現(xiàn)在 C8051F320 上的一個(gè)內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 應(yīng)用程序接口( API)。這些函數(shù)提供了一個(gè)通過(guò) C8051F320 的 USB 控制器的通用 I/O接口,而不需要考慮底層的 USB 硬件細(xì)節(jié)或者協(xié)議。 API 在 Keil C51 中以一個(gè)庫(kù)文件的形式被提供。設(shè)備固件必須在 Keil C51 中開(kāi)發(fā)。設(shè)備接口函數(shù)有: USB_Clock_Start()– 初始化 USB 時(shí)鐘 USB_Init()– 使能 USB 接口 Block_Write()– 通過(guò) USB 寫(xiě)數(shù)據(jù)到主機(jī) Block_Read()– 通過(guò) 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ù)來(lái)確定中斷的來(lái)源(這個(gè)調(diào)用也清除未決的中斷標(biāo)志位)。 USB0 硬件中斷位于向量地址 0x0043(interrupt 8)被 USBXpress 聲明,并且被用來(lái)處理底層 USB 協(xié)議細(xì)節(jié)。 USB API interrupt 16 是一個(gè)由 USBXpress 固件庫(kù)生成的虛擬的中斷,無(wú)論何時(shí)當(dāng)用戶代碼需要被通知一個(gè) USBXpress 事件的時(shí)候被使用。這個(gè)事件在Get_Interrupt_Source 函數(shù)的描述中被定義。固件編程時(shí)需要將 的頭文件包含進(jìn)去。 串口中斷服務(wù)程序設(shè)計(jì) C8051F320 提供的 UART0 是一個(gè)異步、全雙工串口,它提供標(biāo)準(zhǔn) 8051 串行口的方式 1 和方式 3,有多個(gè)時(shí)鐘源可用于產(chǎn)生標(biāo)準(zhǔn)波特率。由于 USB 采用全速方式傳輸,所內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 以 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,產(chǎn)生的波特率誤差為約為 %。定時(shí)器 1 應(yīng)被配置為方式 2,即 8 位自動(dòng)重裝載方式。 UART0 的波特率由方?jīng)Q定: (41) 其中 T1CLK 是定時(shí)器 1 的時(shí)鐘頻率, T1H 是定時(shí)器 1 的高字節(jié)(重載值)。當(dāng)采用 外部時(shí)鐘 8 分頻的時(shí)候,分頻系數(shù)為 2304,重載值為 0x70。當(dāng)內(nèi)部時(shí)鐘 12MHz 作為系統(tǒng)時(shí)鐘, T1 采用系統(tǒng)時(shí)鐘 8 分頻的時(shí)候,重載值為 0xB2。 UART 的中斷服務(wù)程序流程圖如圖 所示。 圖 UART 中斷服務(wù)程序流程圖 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 主程序設(shè)計(jì) 主程序文件中包含固件的主程序和一些初始化子程序。在一個(gè)程序中,它的初始化程序是很重要的,如果設(shè)置不當(dāng)將會(huì)產(chǎn)生不可預(yù)見(jiàn)的后果。 例如系統(tǒng)時(shí)鐘初始化程序 SYSCLKInit( ),在外部晶振時(shí),設(shè)置比較復(fù)雜,很容易出錯(cuò),一定要注意在使能晶體振蕩器和檢查 XTLVLD 位 之間要引入至少 1ms 的延時(shí),來(lái)防止提前將系統(tǒng)時(shí)鐘切換到外部振蕩器,如果在晶體振蕩器穩(wěn)定之前就切換到外部晶體振蕩器,可能產(chǎn)生不可預(yù)見(jiàn)的后果。 為了避免上面的問(wèn)題出現(xiàn),其執(zhí)行程序如下,主要完成外部晶振的使能,延時(shí) 1ms,并設(shè)置外部晶振為系統(tǒng)時(shí)鐘源。 void SYSCLKInit( void) //系統(tǒng)時(shí)鐘初始化程序 { int i=0; OSCXCN=0x67; //開(kāi)始外部晶振 for(i=0; i30000; i++) //延時(shí) 1ms,等待晶體振蕩器穩(wěn)定 while(!(OSCXCNamp。0x80)=0) //等待晶振控制器設(shè)置外部晶振為系統(tǒng)時(shí)鐘源 OSCXCN=0x00; OSCICN=0x83; } 除了系統(tǒng)時(shí)鐘初始化程序之外,另一個(gè)重要的初始化程序就是 USB0 的初始化程序UsbInit( )主要使能 USB 的復(fù)位,端點(diǎn) 0~2 的中斷、復(fù)位、恢復(fù)和掛起中斷,時(shí)鐘恢復(fù)功能,掛起檢測(cè)中斷, USB0 中斷和全部中斷,并使能 USB 的傳輸功能,包括低速和全速傳輸方式。程序執(zhí)行如下: void Usb0Init(void) 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) { POLLWRITEBYTE(POWER, 0x08); //迫使異步 USB 復(fù)位 POLLWRITEBYTE(IN1IE, 0x07); // 使能端點(diǎn) 0~2 的輸入中斷 POLLWRITEBYTE(OUT1IE, 0x07); //使能端點(diǎn) 0~2 的輸出中斷 POLLWRITEBYTE(CMIE, 0x07); //使能復(fù)位、恢復(fù)和掛起中斷 ifdefUSBLOWSPEED USB0XCN=0xC0; // 使能 USB 的傳輸功能, //選擇其低速傳送方式 POLLWRITEBYTE(CLKREC, 0xA0); //使能時(shí)鐘恢復(fù)功能,不采用 //單步模式,使能低速傳輸 else USB0XCN=0xE0; //使能 USB 的傳輸功能, //選擇其全速傳送方式 POLLWRITEBYTE(CLKREC , 0x80) ; // 使能時(shí)鐘恢復(fù)功能,不采用 //單步模式,使能全速傳輸 endif/*USBLOWSPEED*/ EIE1=0x02; //使能 USB0 中斷 EA=1; //使能全部中斷 POLLWRITEBYTE(POWER, 0x01); //清除電源控制寄存器的位 //來(lái)使能掛起檢測(cè) } C8051F320 有 25 個(gè) I/O 引腳,它的端口工作情況與標(biāo)準(zhǔn) 8051 相似,但有一些改進(jìn),內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 即是用戶可 根據(jù)自己的特定應(yīng)用自由選擇通用端口 I/O 和所需要的數(shù)字資源的組合。每個(gè)端口引腳都可以被配置為模擬輸入或數(shù)字 I/O 引腳,被選擇作為數(shù)字 I/O 的引腳還可以被配置為推挽或漏極開(kāi)路輸出。數(shù)字交叉開(kāi)關(guān)允許將內(nèi)部數(shù)字系統(tǒng)資源映射到端口 I/O引腳。所以 C8051F320 在工作之前必須把端口進(jìn)行正確的初始化,那樣端口才能正常的工作,其初始化程序如下: void PortInit(void) { P0MDOUT |=0x0F; //端口 0 的 0~3 腳設(shè)置為漏極開(kāi)路 P1MDOUT |=0x0F; //端口 1 的 0~3 腳設(shè)置為漏極開(kāi)路 P2MDOUT |=0x02; //端口 2 的 0、 1 腳設(shè)置為漏極開(kāi)路 P0SKIP=0x3C; //XTAL1()、 XTAL2()、 //TX0()和 RX0()被跳過(guò) XBR0=0x09; //使串行口,系統(tǒng)時(shí)鐘輸出 XBR1=0x40; //使能交叉開(kāi)關(guān) } 除了上面的幾個(gè)重要的初始化程序外,另外還有串口初始化程序 uart()Init(),定時(shí)器 1 和定時(shí)器 2 初始化程序等。 系統(tǒng)上位機(jī) USB 驅(qū)動(dòng)程序設(shè)計(jì) 本系統(tǒng)中主機(jī)上的 C8051F320 數(shù)據(jù) 通信 板驅(qū)動(dòng)程序采用 Silicon Laboratories 提供的Custom USB Driver Wizard 程序生成。驅(qū)動(dòng)的安裝可以通過(guò)修改硬件安裝文件( .inf)而被定制。被包含在 .inf 文件中的串號(hào)將會(huì)影響在“發(fā)現(xiàn)新硬件向?qū)А睂?duì)話框以及設(shè)備管理器和注冊(cè)表中顯示的內(nèi)容。在驅(qū)動(dòng)安裝中 VID( vendo ID)、 PID( product ID)應(yīng)當(dāng)與內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 固件中的 VID、 PID 相同,如果 改變必須同時(shí)調(diào)整。定制程序可以生成預(yù)安裝程序和卸載程序。預(yù)安裝程序可以在設(shè)備連接之前就把驅(qū)動(dòng)文件拷入系統(tǒng)并且注冊(cè)設(shè)備,從而當(dāng)設(shè)備第一次被連接在 PC 上的時(shí)候,和使用者的交互較少。這時(shí)候設(shè)備將列在添加 /卸載程序列表中并且相應(yīng)的卸載能被用來(lái)移除驅(qū)動(dòng)。 應(yīng)用程序設(shè)計(jì) 系統(tǒng)主機(jī)應(yīng)用程序采用 編寫(xiě), VB 具有面向?qū)ο蟆⒖梢暬?IDE、事件驅(qū)動(dòng)編程等優(yōu)勢(shì),很適用于工業(yè)上的主機(jī)應(yīng)用程序編制。 在對(duì) USB 設(shè)備訪問(wèn)的程序設(shè)計(jì)中, Silicon Laboratories 提供的 USBXpress 開(kāi)發(fā)工具包中以 Windows 動(dòng)態(tài) 鏈接庫(kù)( DLL, Dynamic Link Library)的形式提供了一套簡(jiǎn)單高效的應(yīng)用程序接口,函數(shù)庫(kù)可以實(shí)現(xiàn)上層應(yīng)用程序?qū)?USB 總線數(shù)據(jù)的調(diào)用和管理。 對(duì)于 C8051F320 主機(jī)應(yīng)用程序接口函數(shù)包括:
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1