畢業(yè)設計--- 基于單片機pc程控脈沖信號發(fā)生器設計_第1頁
已閱讀1頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  畢業(yè)設計(論文)</b></p><p><b>  畢業(yè)設計指導任務書</b></p><p>  畢業(yè)設計題目 基于單片機PC程控脈沖信號發(fā)生器設計 </p><p>  學生姓名

2、 專 業(yè) 通信技術 </p><p>  指導教師 職 稱 副教授 </p><p><b>  目 錄</b></p><p>  第一章 緒論 ………………

3、………………………………………….1</p><p>  第二章 系統(tǒng)方案設計 ……………………………………………………….2</p><p><b>  2.1 引言2</b></p><p>  2.2 飛思卡爾各型號單片機簡介3</p><p>  2.2.1 8位單片機3</p><

4、;p>  2.2.2 16位單片機3</p><p>  2.2.3 32位單片機3</p><p>  2.3 帶USB模塊的單片機MC9S12UF32特點及應用4</p><p>  2.3.1 UF32單片機引腳封裝圖4</p><p>  2.3.2 UF32單片機內部資源結構圖4</p><p&g

5、t;  2.4 系統(tǒng)設計方案論證6</p><p>  2.4.1 系統(tǒng)指標分析6</p><p>  2.4.2 總體方案簡述與設計框圖6</p><p>  2.4.3 PC 端模塊設計7</p><p>  2.4.4 MCU端USB和PULSE模塊設計8</p><p>  第三章 USB2.0通信

6、接口設計………………………………………………...9</p><p><b>  3.1 引言9</b></p><p>  3.2 USB接口設計必須具備的基礎知識9</p><p>  3.2.1 USB基本結構9</p><p>  3.2.2 USB主機10</p><p>  3

7、.2.3 USB設備10</p><p>  3.3 USB物理特性與接口設計方法11</p><p>  3.3.1 USB接口11</p><p>  3.3.2 USB信號12</p><p>  3.4 USB通信協(xié)議12</p><p>  3.4.1 信息包格式13</p><

8、;p>  3.5 事務處理基本類型及USB傳輸類型13</p><p>  3.5.1USB設備列舉14</p><p>  3.6UF32的USB2.0模塊的設計14</p><p>  第四章 系統(tǒng)硬件實現 …………………………………………………...…….15</p><p><b>  4.1 引言15<

9、;/b></p><p>  4.2 原理圖設計及各模塊要說明15</p><p>  4.2.1 電源模塊設計15</p><p>  4.2.2 時鐘模塊設計15</p><p>  4.2.3 復位模塊設計16</p><p>  4.2.4 USB接口模塊設計16</p><

10、p>  4.2.5 狀態(tài)顯示模塊設計17</p><p>  4.2.6 輸入輸出模塊設計17</p><p>  4.2.7BDM調試接口模塊設計18</p><p>  4.3 PCB設計及版圖設計簡要說明18</p><p>  4.3.1 版圖設計說明18</p><p>  4.3.2 Fre

11、escale 9S12UF32&USB2.0版圖19</p><p>  第五章 系統(tǒng)設計軟件實現與調試 ………………………………………….20</p><p><b>  5.1 引言20</b></p><p>  5.2 脈沖產生處理程序21</p><p>  5.3 USB模塊接收程序21&l

12、t;/p><p>  5.3.1 UF32內部模塊方案選擇21</p><p>  5.3.2 UF32芯片的USB 2.0 功能的軟件實現22</p><p>  5.4USB模塊與PULSE模塊數據通信設計23</p><p>  5.5USB模塊調試23</p><p>  5.6系統(tǒng)集成模塊調試23<

13、;/p><p>  5.7 系統(tǒng)集成模塊調試脈沖輸出照片24</p><p>  第六章 PC端VC++程序編制及調試 ............................................................25</p><p><b>  6.1 引言25</b></p><p> 

14、 6.2 主機程序的實現及功能26</p><p>  6.2.1 USB接口函數介紹26</p><p>  6.2.2 PC端操作界面26</p><p>  6.2.3 程序流程及說明27</p><p><b>  致謝 </b></p><p><b>  參 考 文

15、獻</b></p><p>  附錄A:系統(tǒng)電路原理圖</p><p><b>  摘 要</b></p><p>  USB(Universal Serial Bus)以其高速、免費、開放、便利等特點已經在各種設備中廣泛采用,并以其獨特的優(yōu)勢漸有取代傳統(tǒng)通信接口的趨勢。Freescale單片機以其穩(wěn)定、簡單、靈活、優(yōu)越的性能

16、,廣泛應用于工業(yè)控制和消費電子中。</p><p>  本系統(tǒng)是基于USB2.0高速傳輸的理論(高速模式速度480Mb/s,全速12Mb/s)。以Freescale UF32單片機為核心控制單元,利用UF32內含的USB2.0控制模塊(UDC20) 實現與PC主機的USB通信,設計了PC程控的便攜式脈沖信號發(fā)生器。</p><p>  硬件系統(tǒng)通過USB2.0接口與PC機相連,硬件板上的U

17、F32單片機通過USB接口模塊和專門用于批量傳輸的集成隊列模塊(IQUE)與主機通信。當收到上位機傳來的脈沖信號參數和控制命令,則通過內部程序設置,利用內部增強的定時器模塊(ETC_16B8C)產生相應的脈沖輸出。PC機上VC++編程實現圖形界面(GUI),以及驅動程序完成應用程序和USB系統(tǒng)驅動的連接,以達到設計目的。</p><p>  關鍵詞:USB2.0,脈沖,VC++圖像界面設計 </p>

18、<p><b>  緒論</b></p><p>  脈沖信號源在日常生活和生產中需求不斷提高,特別是對其各種參數需求的靈活性。應用最廣泛的是PWM(脈沖寬度調制)去控制步進電機,完成對工業(yè)儀器和設備的遠程智能控制。</p><p>  單片機MCU采用Freescale 9S12UF32,其內置USB2.0控制模塊及專門用于批量傳輸的IQUE(集成隊列

19、模塊)。使用Freescale開發(fā)系統(tǒng)及免費的CodeWarrior開發(fā)環(huán)境,單片機編程使用匯編語言、C語言均可。</p><p>  因此,新一代的信號發(fā)生器產品就應運而生。國內外均有相應產品,如美國NI公司就有PCI總線、PXI/CPCI總線的信號發(fā)生器產品系列,而國內類似產品尚處于研制初期。電子工程實際中經常要用到的信號發(fā)生器,其功能和效果都已標準化、產品化。隨著科技應用的發(fā)展和延伸,對信號發(fā)生器的各方面要

20、求越來越高。傳統(tǒng)信號發(fā)生器存在波形精度低、頻率穩(wěn)定性差、價格貴、攜帶不便、無程控等缺點。另外,在某些特殊工程應用中,需要專門配備特殊信號(如雷達等)、由用戶程序控制、并能嵌入目標系統(tǒng)的信號發(fā)生單元,而不是一個單純的實驗設備型儀器。</p><p>  USB(通用串行總線)在當今已廣泛應用,它存在于我們生活的各個地方,如電腦、手機、數碼相機、鼠標、等,它是一種廉價、通信速度快。適合于大批量、短距離數據傳輸的設備進

21、行實時通信。USB總線的快速性和開放性使得它有取代老式的慢速總線的趨勢,并成為智能設備中一種不可或缺的總線接口。 </p><p>  第二章 系統(tǒng)方案設計</p>

22、<p><b>  2.1 引言</b></p><p>  單片機是單片微型計算機SCM(single chip micro-computer)的譯名簡稱, 它包括中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、中斷系統(tǒng)、定時器/計數器、串行口和I/O等等。</p><p>  早期:以Intel公司為領袖,同步于通用微機,有3個階段:</p

23、><p>  第一階段(1974~1978)初級,8位,MCS-48系列(帶并行I/O接口、定時器/計數器、無串行I/O接口)</p><p>  第二階段(1978~1983)高級,8位,MCS-51系列(新增串行I/O接口、多級中斷等功能完備,拓寬了其應用范圍)</p><p>  第三階段(1983~)16位單片機, MCS-96系列(16位處理,含A/D轉換器,

24、功能加強,速度快)</p><p>  其中:MCS-51系列獲得了最為廣泛的應用,典型型號為使用Intel 8051內核的89C51、89S51……</p><p>  Freescale(飛思卡爾)半導體公司是全球最大的半導體公司之一,其前身為Motorola(摩托羅拉)半導體部,2004年從摩托羅拉分拆上市。它從1953年開始從事半導體業(yè)務,是世界半導體產業(yè)與技術的開拓者,為汽車電子

25、、消費電子、工業(yè)控制、網絡和無線市場設計并制造了眾多的嵌入式半導體產品, 在微控制器領域長期居于全球市場領先地位。</p><p>  飛思卡爾MCU家族:</p><p>  8位機 --- HC05、HC08、HCS08、RS08系列</p><p>  16位機 --- HC12、S12、S12X系列</p><p>  32位機 -

26、-- PowerPC、Coldfire、ARM、M.CORE系列</p><p><b>  應用特點:</b></p><p>  品種全、選擇余地大、新產品多。</p><p>  應用領域極廣,尤其在汽車、手機領域。</p><p>  在同樣速度下所用的時鐘頻率較Intel類單片機低很多,因而使得高頻噪聲低,抗干

27、擾能力強,更適合用于工控領域及惡劣的環(huán)境。</p><p>  2.2 飛思卡爾各型號單片機簡介</p><p>  2.2.1 8位單片機</p><p>  Motorola公司于1975年推出MC6800微處理器。在此基礎上,1983年前后發(fā)展成為較高性能的M68HC05系列8位單片機,并獲得全球銷量第一的榮譽。其先后推出基于HC08、HCS08、RS08核心

28、的新一代8位單片機,價格低廉,功能強大。RS08系列是2006年推出的超低端8位MCU,以滿足體積更小,更經濟高效的解決方案。</p><p>  2.2.2 16位單片機</p><p>  飛思卡爾采用CPU12內核的MCU主要有HC12和HCS12兩種類型。</p><p>  2005年,飛思卡爾推出HCS12X系列16位單片機,做為HCS12的升級版,在保

29、留了HCS12系列16位MCU效率,同時采用增強的內核和增強的外圍設備,提高了總線速度(最高總線速度達到40MHz)。HCS12X增加了一個平行的協(xié)處理器XGATE,它可以在很大程度上解放CPU,使得其達到通常只有32位CPU才能達到的性能。</p><p>  HCS12是HC12的升級版,其性價比更高,是CPU12系列MCU的先進機種。其主要特點是:增強型16位CPU內核(HCS12),高總線頻率8MHz到2

30、5MHz,具有片內FLASH存儲器,CPU編碼效率高,支持背景調試(BDM,單線,低成本,在線全仿真、下載)。</p><p><b>  HCS12子系列:</b></p><p>  MC9S12A、 MC9S12B、 MC9S12D---通用</p><p>  MC9S12H、 MC9S12L---帶液晶驅動</p>&l

31、t;p>  MC9S12E128、 MC9S12E64---低供電電壓</p><p>  MC9S12NE---帶以太網接口</p><p>  MC9S12UF32---帶USB接口</p><p>  2.2.3 32位單片機</p><p>  飛思卡爾的32位微處理器,大部分基于PowerPC、Coldfire、ARM、M.C

32、ORE幾種核心架構。他們的處理能力都相當強,PowerPC架構的處理器如MPC860系列,主要應用于電信行業(yè),并成為主流CPU,MPC500系列一經推出就被汽車行業(yè)評委年度最佳MCU產品。</p><p>  2.3 帶USB模塊的單片機MC9S12UF32特點及應用</p><p>  2.3.1 UF32單片機引腳封裝圖</p><p>  2.3.2 UF32

33、單片機內部資源結構圖</p><p>  MC9S12UF32是16位單片機中低價位、高性能HCS12家族中的一員。由S12內核(Star Core CPU),加其它標準的片上模塊組成,包括32K字節(jié)FLASH EEPROM,3.5K字節(jié)RAM,1.5K隊列QRAM,高速USB2.0(480Mb/S)接口,給USB批量數據傳輸使用的集成隊列控制器(IQUE),ATA5接口(PCI總線接口),U盤類FLASH接口(

34、Compact FLASH),SD/MMC接口,智能多媒體接口,記憶棒接口,一個16位8通道定時器,串行通訊接口,73個獨立的數字I/O通道和2個輸入通道。MC9S12UF32系統(tǒng)總線為16位寬。外部總線可以在8位窄模式下工作,IQUE模塊控制一條專門的內部總線,使得從存儲接口到USB模塊保持每秒60M字節(jié)的傳輸率。MC9S12UF32單片機有LQFP-100和LQFP-64兩種封裝形式。</p><p>  C

35、PU本身起到了對系統(tǒng)的配置和控制作用,真正的數據傳輸通過IQUE作為中介完成。集成隊列模塊IQUE由三個主要部分組成:QUE控制器、QUE集成模塊(QIM)和靜態(tài)隊列RAM(QRAM)。QUE控制器有四個通道,它們可以在單個IQUE時鐘周期內移動一個字節(jié)或者一個16位字。QIM內部的復用和控制邏輯允許QRAM在QUE控制器和CPU之間共享。模塊有三個總線接口:外設(IP)總線接口,IP 先進先出緩沖接口(FIFO)和S12的CPU接口(

36、EEPROM總線)。</p><p>  在數據隊列的自動傳輸過程中,數據以FIFO的方式寫入或傳出QRAM。CPU可以通過對QUE控制器寄存器的操作實現對QRAM的寫入或者讀出。CPU可以用普通的讀或寫方式對QRAM進行隨機訪問。當從FIFO數據端口訪問QRAM中的信息時,指針會自動更新,此時QRAM緩沖區(qū)以環(huán)形或線性FIFO方式工作。FIFO的起始指針和末尾指針也可以直接修改。</p><

37、p>  2.4 系統(tǒng)設計方案論證</p><p>  2.4.1 系統(tǒng)指標分析</p><p>  本系統(tǒng)可以看作是一個簡單的嵌入式設備,因此,對系統(tǒng)要完成如下功能:</p><p>  要求PC機上有較為友好的操作界面(GUI)。</p><p>  能通過USB總線進行數據的收發(fā)。</p><p>  用US

38、B高速傳輸模式。</p><p>  脈沖產生模塊要求輸出頻率,占空比,個數及輸出使能可調,頻率和信號波形達到普通信號源要求。</p><p>  硬件板塊要求小巧而且布局美觀,以達到便攜式要求。</p><p>  要求硬件板塊必須引出足夠豐富接口和其他資源,以供其他功能應用,而成為真正的一個嵌入式標準模塊或是核心板。</p><p>  

39、對于系統(tǒng)硬件設備的主要芯片,UF32對本系統(tǒng)相當合適,所有本次設計選用飛思卡爾16位高性能單片機MC9S12UF32作為核心控制模塊。</p><p>  2.4.2 總體方案簡述與設計框圖</p><p>  系統(tǒng)要求通過PC上的客戶軟件輸入要產生相關參數,如周期(頻率)等。通過USB總線以高速批量傳輸方式,將相應參數信息傳遞給處理板(MC9S12UF32單片機為核心的硬件系統(tǒng)),首先U

40、F32接收到上位機的信息,然后作為脈沖產生模塊的輸入參數,并將這些參數寫到相應寄存器內,從而產生對應波形。</p><p><b>  系統(tǒng)總體框圖如下:</b></p><p>  2.4.3 PC 端模塊設計</p><p>  USB主機必須完成三個功能:客戶軟件、USB系統(tǒng)軟件和USB總線接口。USB客戶軟件是PC程序實現的目標,包括U

41、SB設備驅動和界面應用程序。對于本系統(tǒng),我采用VC++/MFC進行開發(fā)。本次PC端主要模塊即為VC++圖形界面的設計,要求界面包括如下指標及參數的設定:</p><p>  設備打開成功與否,狀態(tài)顯示。</p><p>  向設備輸入數據顯示和設備相關信息顯示。</p><p>  頻率設置、占空比設置、脈沖個數設置、脈沖輸出使能設置窗口。</p>&

42、lt;p>  發(fā)送按鈕、清除按鈕。</p><p><b>  退出按鈕。</b></p><p>  2.4.4 MCU端USB和PULSE模塊設計</p><p>  由于UF32內部集成了USB2.0控制模塊,所以USB通信協(xié)議由MCU程序中設置相應USB相關寄存器和初始化該模塊,設定USB接收發(fā)送的相關中斷完成對USB工作的基本環(huán)

43、境。</p><p>  UF32的USB 2.0模塊共有6個端點,其中1端點作為默認的零號控制端點使用,2、3 端點可以各自使用內部64 字節(jié)的寄存器緩沖區(qū),4、5 端點可以使用UF32 的集成隊列模塊(IQUE)進行數據緩沖,這個模塊是一個類似于DMA方式的模塊,用于外設和內存之間傳送數據,而不需要CPU 的干預。</p><p>  使用4、5端點作為USB 的批量傳輸輸入輸出端口,

44、那么在高速模式情況下,端點一次最多可以發(fā)送512 個字節(jié),且端點4、5的端點緩沖區(qū)不在USB2.0模塊內部,而是在IQUE的寄存器設置,來確定最終將數據存到所映射的QRAM的某個位置。這樣PC上傳下來的數據將保存到該QRAM中,CPU要讀取數據,可以直接通過對QRAM相應地址讀數據即可。</p><p>  PULSE(脈沖)產生模塊,采用UF32內部集成的增強定時器(ECT_16B8C)模塊,利用單通道的輸出比

45、較(OC)模式,并允許比較成功中斷,設置相關寄存器設置比較成功中斷并輸出翻轉。利用分別不同時刻交替的向TCx賦值為HighTime和LowTime來完成占空比和頻率可調。每次進入中斷后檢測Mun是否超出預先設置值,再在最后判斷是否輸出使能,并再次允許中斷,啟動定時器。</p><p>  第三章 USB2.0通信接口設計</p><p><b>  3.1 引言</b&g

46、t;</p><p>  計算機總線是計算機各部件之間進行信息傳輸的公共通道,根據信號類型的不同,微型計算機的總線一般分為數據總線、地址總線和控制總線三種。在基于8Ox86系列CPU的PC系統(tǒng)中所采用的標準總線主要有PC漢T總線、SIA總線、EISA總線、MAC總線以及VESA、PCI、AGP總線,其中后三種總線屬于局部總線,也是性能比較高、傳輸速度比較快的總線結構。 USB不是一種新的總線標準,而是應用在PC領

47、域的接口技術。目前主板中主要是采用USB1.1和USB2.0,各USB版本間能很好的兼容。USB用一個4針插頭作為標準插頭,采用菊花鏈形式可以把所有的外設連接起來,最多可以連接127個外部設備,并且不會損失帶寬。USB需要主機硬件、操作系統(tǒng)和外設三個方面的支持才能工作。目前的主板一般都采用支持USB功能的控制芯片組,主板上也安裝有USB接口插座,而且除了背板的插座之外,主板上還預留有USB插針,可以通過連線接到機箱前面作為前置USB接口

48、以方便使用。而且USB接口還可以通過專門的USB連機線實現雙機互連,并可以通過Hub擴展出更多的接口。USB具有傳輸速度快(USB1.1是12Mbps,USB2.0是48</p><p>  第一代:USB1.0/1.1的最大傳輸速率為12Mbps。</p><p>  第二代:USB2.0的最大傳輸速率高達480Mbps。USB1.0/1.1與USB2.0的接口是相互兼容的。</p

49、><p>  第三代:USB3.0 最大傳輸速率5Gbps, 向下兼容USB 1.0/1.1/2.0</p><p>  3.2 USB接口設計必須具備的基礎知識</p><p>  3.2.1 USB基本結構</p><p>  USB 是一種支持熱插拔的高速串行傳輸總線,它使用差分信號來傳輸數據,最高速度可達480Mb/S。USB 支持“總線

50、供電”和“自供電”兩種供電模式。在總線供電模式下,設備最多可以獲得500mA 的電流。USB2.0 被設計成為向下兼容的模式,當有全速(USB 1.1)或者低速(USB 1.0)設備連接到高速(USB 2.0)主機時,主機可以通過分離傳輸來支持它們。一條USB 總線上,可達到的最高傳輸速度等級由該總線上最慢的“設備”決定,該設備包括主機、HUB 以及USB 功能設備。USB 體系包括“主機”、“設備”以及“物理連接”三個部分。其中主機是

51、一個提供USB接口及接口管理能力的硬件、軟件及固件的復合體,可以是PC,也可以是OTG 設備。一個USB 系統(tǒng)中僅有一個USB 主機;設備包括USB 功能設備和USB HUB,最多支持127 個設備;物理連接即指的是USB 的傳輸線。在USB 2.0 系統(tǒng)中,要求使用屏蔽的雙絞線。</p><p>  以下為USB系統(tǒng)數據通信的結構圖,下面將對其進行一一說明。</p><p>  3.2.

52、2 USB主機</p><p>  USB的所有數據通信(不論是上行通信還是下行通信)都由USB主機啟動,USB主機在整個數據傳輸過程中占主導地位。在USB系統(tǒng)中,只允許一個主機。USB主機分為3個不同的功能模塊:客戶軟件、USB系統(tǒng)軟件和USB總線接口。</p><p>  3.2.3 USB設備</p><p>  一個USB設備由3個功能模塊組成:USB總線接

53、口、USB邏輯設備和功能單元。這里的USB總線接口指的是USB設備中的串行接口引擎(SIE);USB邏輯設備被USB軟件看作是一個端點的集合;功能單元被客戶軟件看作是一個接口的集合。SIE、端點和接口都是USB設備的組成單元。USB設備使用各種描述符來說明其設備構架,包括設備描述符、配置描述符、接口描述符、端點描述符、字符串描述符和管道,它們通常被保存在USB設備的固件程序中。</p><p>  3.3 USB

54、物理特性與接口設計方法</p><p>  3.3.1 USB接口</p><p>  USB使用一根屏蔽的4線電纜與網絡上的設備進行互聯。數據傳輸通過一個差分雙絞線進行,這兩根線分別標為D+和D-;另外兩根線Vcc和GND,其中Vcc向USB設備供電。</p><p><b>  其引線定義:</b></p><p>

55、<b>  表3.1</b></p><p><b>  2、USB連接頭</b></p><p>  A型連接頭用于上行連接,即接主機或集線器,B型連接頭用于下行連接,USB設備上一般用B型插座。</p><p>  A型連接頭 B型連接頭</p>

56、<p>  3.3.2 USB信號</p><p>  數據在USB總線上實際傳輸時,使用的是NRZI(反向不歸零)編碼的差分信號,這種信號有利于保證數據的完整性和消除噪聲干擾。</p><p><b>  1、差分信號技術</b></p><p>  傳統(tǒng)的傳輸方式大多使用一個臨界值來分別來區(qū)分1和0。差分信號技術最大的特點是:必須

57、使用兩條線路才能表達一個比特位,用兩條線路傳輸信號的壓差作為判斷1還是0的依據。</p><p><b>  2、編碼格式</b></p><p> ?。?)方向不歸零編碼由發(fā)送信息的USB代理程序完成;</p><p>  (2)被編碼的數據通過差分驅動器送到USB電纜上;</p><p>  (3)接收器將輸入的差分

58、信號放大,將其送給解碼器。</p><p><b>  傳輸結構圖:</b></p><p>  3.4USB通信協(xié)議</p><p>  USB事務處理由一系列具有特定格式的信息包組成。要了解完整的USB通信協(xié)議,必須從USB的信息傳輸單元包及其數據域談起。在低速、全速模式下,主機每間隔1ms(這個1ms稱為一幀)發(fā)送一個幀開始令牌包SOF(

59、Start of Frame)。包含SOF標記、幀序列號及CRC5校驗碼 ;在高速模式下,主機每間隔1/8ms(即為一微幀)發(fā)送一個幀開始令牌包SOF。 </p><p>  包(Packet)是USB系統(tǒng)中信息傳輸的基本單元,所有數據都是經過打包后在總線上傳輸的。USB包由5部分組成:同步(SYNC)字段、包標識符(PID)、數據字段、循環(huán)冗余校驗(CRC)字段和包結尾(EOP)字段。</p>&

60、lt;p><b>  基本包格式:</b></p><p><b>  表3.2</b></p><p>  3.4.1 信息包格式</p><p>  根據信息包所實現的功能,其可以分為3種類型:令牌包、數據包和握手包。其中,令牌包定義了數據傳輸的類型,數據包含有需要傳輸的數據,握手包指明了數據接收的成功與否。&l

61、t;/p><p><b>  令牌包</b></p><p>  在USB系統(tǒng)中,只有主機才發(fā)出令牌包,它是事務處理的第一階段。</p><p><b>  令牌包格式:</b></p><p><b>  表3.3</b></p><p><b>

62、;  數據包</b></p><p>  主機總是通過配置事件初始化總線傳送的第一個數據包為DATA0 PID,第二個數據包為DATA1 PID,并且以后的數據傳送輪流切換。格式如下:</p><p><b>  表3.4</b></p><p><b>  握手包</b></p><p&g

63、t;  握手信息包是最簡單的信息包類型。在這個握手信息包中,僅含有一個PID數據域。格式如下:</p><p><b>  表3.5</b></p><p>  3.5 事務處理基本類型及USB傳輸類型</p><p>  在USB上的數據信息的一次接收或發(fā)送的處理過程為事務處理(Transaction)。事務處理的類型包括輸入(IN)事務處理

64、、輸出(OUT)事務處理、設置(SETUP)事務處和幀開始、幀結尾等類型。</p><p>  USB傳輸類型有4種:批量控制傳輸、實時傳輸、批量傳輸和中斷傳輸。</p><p>  3.5.1 USB設備列舉</p><p>  USB設備列舉:HUB通知主機設備連接到USB總線上,此時USB設備處于供電狀態(tài);主機查詢HUB來獲得設備信息,并且等待100ms,讓設

65、備總線處于供電穩(wěn)定,此時USB主機向設備發(fā)送復位請求;USB設備復位后,通過默認地址響應總線標準請求;USB主機為USB設備分配一個設備地址,并通過讀設備描述符來獲得設備端口的最大載荷;USB主機獲得設備配置信息,并根據信息向設備發(fā)送設備配置請求,USB設備響應該請求后列舉完成。</p><p>  3.6UF32的USB2.0模塊的設計</p><p>  USB2.0模塊依靠片上USB

66、設備控制器(UDC20)和USB物理層接口(UPHY),支持USB全速和高速協(xié)議。UDC20模塊有6個獨立的端點,它們可以配置為控制、中斷、批量或者同步傳輸的IN/OUT端點。兩個64字節(jié)緩沖區(qū)分配給了物理端點1,該端點默認為控制端點。另外三個64字節(jié)緩沖區(qū)分配給了物理端點2,3和6。端點數據通過IP FIFO總線保存在IQUE模塊中。使用4、5端點作為USB 的批量傳輸輸入輸出端口,在高速模式情況下,端點一次最多發(fā)送512 個字節(jié),且

67、4、5的端點緩沖區(qū)不在USB2.0模塊內部,而是在IQUE的寄存器設置,來確定最終將數據存到所映射的QRAM的某個位置。這樣PC上傳下來的數據將保存到該QRAM中,CPU要讀取數據,可以直接通過對QRAM相應地址讀數據即可。</p><p>  UF32內部USB2.0模塊框圖如下:</p><p>  第四章 系統(tǒng)硬件實現</p><p><b>  

68、4.1 引言</b></p><p>  由于硬件模塊核心處理器選擇Freescale UF32單片機,因此,硬件電路參考飛思卡爾官方網站推薦電路和部分電路設計,最終完成整個系統(tǒng)的硬件設計。</p><p>  具體硬件部分主要由核心處理單元UF32、UF32最小系統(tǒng)要求外圍時鐘、電源、復位、及調試接口,并且也引出了豐富的接口資源,可以供多個外圍器件或設備與本系統(tǒng)進行數據交換。

69、</p><p>  4.2 原理圖設計及各模塊要說明</p><p>  4.2.1 電源模塊設計</p><p>  UF32需要+5V和+3.3V供電電壓,其中UF32 的9、10腳(VSSR、VDDR)之間為+5V,為系統(tǒng)提供電源和地;29、30腳(VDD3X、VSS3X)和60、61腳(VSSX、VDDX)之間為+3.3V 給相應I/O 口提供電源和地;電

70、源和地之間的電容均為濾波電容。</p><p>  4.2.2 時鐘模塊設計</p><p>  UF32 第84、85 腳(XTAL、EXTAL)之間的電路為晶振電路,晶振頻率大小為12MHz。另外配備1個1M 反饋電阻和2 個22pF的電容。</p><p>  同時,為系統(tǒng)可以工作于其他頻率模式,特別在電路圖中增加了用戶選用晶振,該晶振為有源晶振,頻率大小可以

71、自己按需要選定。</p><p>  4.2.3 復位模塊設計</p><p>  UF32第7腳( RST )上所接的電路為復位電路。該電路實現比較簡單,只需選擇合適的上拉電阻和濾波電容即可。下圖電路,則可以完成上電復位和用戶按鍵手動復位,使復位方式更靈活。</p><p>  4.2.4 USB接口模塊設計</p><p>  系統(tǒng)中使用

72、的USB 口為標準B 型USB 連接頭,方口中的1 腳為電源、2腳為D-數據線、3 腳D+數據線、4 腳為地。UF32 的89、90、91、92 腳(DPF、DPH、DMF、DMH)為USB 物理層上的全速或高速通訊引腳。其中高速模式下使用的是DPH 和DMH,其它兩個引腳用來終止D+信號。而全速模式下使用的是DPF和DMF,另外兩個引腳處于高阻狀態(tài)。</p><p>  4.2.5 狀態(tài)顯示模塊設計</p

73、><p>  狀態(tài)由4個LED燈組成,它們包括一個5V電源指示燈,一個3.3V電源指示燈,兩個作運行和調試指示燈。</p><p>  4.2.6 輸入輸出模塊設計</p><p>  用戶可以從8路輸出接口中任選一路作為BNC的輸出,即脈沖輸出。</p><p>  4.2.7BDM調試接口模塊設計</p><p>  

74、BDM是飛思卡爾單片機有別于其他單片機的一種叫背景調試(Backgroud Debug)接口,它支持開發(fā)軟件對硬件系統(tǒng)的在線調試與仿真。本設計中采用兼容式BDM接口,它可以同時支持Freescale官方定義和清華大學定義的BDM調試器。</p><p>  4.3 PCB設計及版圖設計簡要說明</p><p>  4.3.1 版圖設計說明</p><p>  硬件板

75、卡設計使用Protel DXP先進行原理圖設計,然后通過建庫及導入,之后完成器件的布局布線工作。</p><p>  板塊對外引出了96個核心處理器UF32的接口,可與UF32進行數據的交換和共享。在最右邊引出了與普通開發(fā)板相似的萬能板插口,允許外部接入雙列直插式芯片和引腳式電器元件。同時也多放置了許多的SMD(貼片式)焊盤,支持小于等于28腳的貼片式封裝芯片的接入及各種與0805封裝相近的貼片電子元件。<

76、/p><p>  在PCB設計中,布局布線是一個需要特別注意的環(huán)節(jié)。而其中,電磁干擾、線間串擾及數據信號完整性等問題常常是最為令版圖設計人員頭痛的事情。因為一個設計的版圖電磁兼容性的好壞有時不但會影響系統(tǒng)的運行效果,更有可能會直接致使系統(tǒng)無法工作。況且,電磁干擾不僅僅是對系統(tǒng)本身,還涉及到系統(tǒng)運行時,對周圍設備的正常運行帶來影響,即設備運行時,向外部空間輻射大量的無用電磁波,造成周邊設備無法正常工作。當然,這也是允許

77、的。</p><p>  因此,本系統(tǒng)布局布線有如下規(guī)則:</p><p>  1. 在布置USB差分線走線要求等長,對稱及包圍面積盡量小,并且要求USB信號線上阻抗恒定為90hmo,需在布局時加以重點考慮,并最好有地包裹。</p><p>  2. 電源芯片遠離核心信號部分,遠離核心處理芯片。</p><p>  3. 晶振電路遠離電源,遠

78、離重要信號線。并且時鐘線最好有地包裹。</p><p>  4. 所以電源引腳的濾波電容必須離引腳盡量靠近。</p><p>  5. UF32要遵循官方PCB布局布線要求。</p><p>  6. 表面有大面積鋪地,減少線間串擾。</p><p>  7. 線寬大于8mil,并要求走線不宜太長,保證信號完整性要求。</p>

79、<p>  4.3.2 Freescale 9S12UF32&USB2.0版圖</p><p>  板尺寸: 58.58 x 97.00 mm </p><p>  板 層: 雙層板,表面敷銅</p><p>  第五章 系統(tǒng)設計軟件實現與調試</p><p><b>  5.1 引言<

80、;/b></p><p>  MCU端程序包括三大主要模塊,它們分別為:MCU初始程序,脈沖產生處理程序和USB模塊接收程序。各模塊先進行各自的初始化處理,然后經過相互間的數據通信,完成數據共享。并通過相互間數據的收發(fā),完成把最終數據傳遞給輸出處理模塊,該模塊再將發(fā)來的數據或命令解析、執(zhí)行,從而完成規(guī)定的任務。</p><p>  MCU初始化將進行一下幾個步驟的工作。</p&

81、gt;<p>  進行堆棧初始化和寄存器初始化,以完成程序要執(zhí)行的最基本的條件。</p><p>  關閉看門狗電路,使能內部電壓轉換模塊。</p><p>  選擇系統(tǒng)時鐘和總線時鐘設置。</p><p>  進行必要的內存地址映射。</p><p>  MCU初始化完成,然后,CPU就可以按指定要求完成相應的程序處理工作。這

82、之前內存映射是很重要的,他將決定你的訪問地址所在位置。</p><p>  USB 2.0 功能的軟件實現部分函數頭的初始化函數:</p><p>  void USB_ModuleInit(void) //USB模塊的初始化.</p><p>  void IQUE_Module_Init(void) // IQUE模塊的初

83、始化.</p><p>  void USB_InitBulkOnlyTransport(void) // USB批量傳輸初始化 配置1x64字節(jié)BULK in 和1x64字節(jié)BULK out</p><p><b>  中斷處理函數:</b></p><p>  void USB_StatusChgISR(void) //USB_

84、StatusChgISR--掛起,復位中斷函數</p><p>  void USB_StartFrameISR(void) //USB起始幀中斷處理</p><p>  void USB_SetConfigISR(void) //USB SET_CONFIGURATION中斷處理</p><p>  void USB_EP0INISR(void)

85、 //端點0 IN中斷</p><p>  void USB_EP0OUTISR(void) //端點0 OUT中斷</p><p>  void USB_PhyEP4ISR(void) //端點4 out中斷 </p><p>  void USB_PhyEP5ISR(void) //端點5 In中斷<

86、;/p><p>  5.2 脈沖產生處理程序</p><p>  脈沖產生模塊為整個信號源的核心模塊,它的性能將直接影響整個系統(tǒng)的實現和最終效果。</p><p>  S12部分單片機內置PWM模塊,使用起來便十分簡單,但UF32內部無PWM模塊,則給系統(tǒng)的實現造成了一定的困難。但UF32與其他同系列單片機一樣,都集成了一個叫增強定時器(ETC)模塊。它功能非常強大,8

87、個通道16位定時器,可配置為輸入捕捉/輸出比較,或作為脈沖累加器等。</p><p>  本設計中采用它的通道7的輸出比較功能,通過對TC7寫入不同的數據(高電平時間/低電平時間),允許定時器輸出比較中斷,然后比較成功輸出翻轉,從而達到占空比、頻率可控的效果。并可以在比較輸出之前進行輸出個數檢查和輸出使能的確認。</p><p>  設計過程中的測試程序如下:</p><

88、;p>  //可變脈沖設計 </p><p>  void TimerOCCTL(INT8U HighTime,INT8U LowTime,INT8U Num,INT8U Gate,INT8U int_Flag0)</p><p>  { </p><p>  if(int_Flag0)</p><p><b

89、>  { </b></p><p>  int_Flag0 = TimerOCHigh(HighTime); //置高電平數據給TC7</p><p>  TimerOCNum(Num); //檢查輸出個數是否超出</p><p><b>  }</b></p>

90、<p><b>  else </b></p><p><b>  { </b></p><p>  int_Flag0 = TimerOCLow(LowTime); //置低電平數據給TC7</p><p><b>  }</b></p><p> 

91、 TimerOCGate(Gate); //檢查輸出使能</p><p>  } </p><p>  5.3 USB模塊接收程序</p><p>  5.3.1 UF32內部模塊方案選擇</p><p>  UF32的USB 2.0模塊共有6個端點,其中1端點作為默認的零號控制端點使

92、用。使用4、5端點作為USB 的批量傳輸輸入輸出端口,那么在高速模式情況下,端點一次最多可以發(fā)送512 個字節(jié),但是如果用2、3 端點實現的話,那么2、3 端點的緩沖區(qū)只有64個字節(jié),限制了緩沖區(qū)數據量,影響速度。</p><p>  5.3.2 UF32芯片的USB 2.0 功能的軟件實現</p><p>  UF32芯片的USB 2.0 功能的軟件實現主要分以下五個步驟:</p&

93、gt;<p>  1. Setup 配置</p><p>  該步驟主要是初始化PLL,并映射IQUE模塊的內存到地址0x1000。IQUE有專用的1.5k SRAM內存,而UF32也有3.5K的SRAM用作其他用處,在這里把IQUE的專用內存移動到0x1000位置,目的是不與系統(tǒng)中那個3.5K的地址重疊。</p><p>  2.USB模塊初始化</p>&l

94、t;p>  這一步驟能開啟各種中斷,因為大部分USB 的處理工作都是在中斷中完成的,開啟的主要中斷有:收到Setup 包、接收到SOF信號、復位和喚醒、遇到主機SetConfigure請求等等。</p><p>  3. IQUE模塊初始化</p><p>  IQUE 模塊有4 個通道,設置UF32的USB 模塊端點5使用通道3和4組成的雙緩沖區(qū)IQUE 模式,USB的端點4使用通

95、道1,并設置通道1為接收模式。</p><p>  4. USB批量傳輸初始化</p><p>  該部分用于初始化批量傳輸模式的端點以及端點所使用的IQUE 模塊。程序內容包括設置USB的寄存器,設置配置和接口數目,配置所有使用的端點,比如端點的傳輸類型,是IN 還是OUT,使用哪個緩沖區(qū)以及緩沖區(qū)的大小,端點所屬的配置號和接口號,并且配置IQUE 的通道等等。</p>&

96、lt;p><b>  5.USB中斷處理</b></p><p>  該部分程序主要功能是對USB 的各種可能的中斷進行處理。主要包括以下:</p><p> ?、?掛起和復位中斷。</p><p> ?、?Setup 中斷。</p><p>  ③ 端點0的IN 和OUT中斷。</p><p&

97、gt;  端點0的IN和OUT中斷處理主要是清相應的狀態(tài)位,設置UEPCSR0 = 0x3000。</p><p> ?、?端點4和端點5中斷。</p><p>  當產生端點4 中斷時,通過讀QC1DR 這個寄存器就可以把從PC端接收的數據全部讀出來,實現了數據的讀取過程。</p><p>  5.4USB模塊與PULSE模塊數據通信設計</p>&

98、lt;p>  由于,通信時使用IQUE模塊,所以端點數據通過IP FIFO總線保持在IQUE模塊中,這個結構使得實現片內其它模塊與USB2.0模塊之間持續(xù)數據通信變得容易。</p><p>  數據的位置由IQUE的QCnSML的控制位決定。若通道1被用到,則可通過QCnCR來確定是哪個通道或大包還是小包傳輸,以16位還256位為訪問單位等。</p><p>  同時,通過設置QCn

99、ZB中的QSIZE來設置需要n個block的16位/256位的存儲區(qū)。設置QBASE位來設置該通道的存儲區(qū)首地址。這樣,具體數據地址為:QRAM地址+QBASE地址,當然,QRAM地址需要自己設置,這需要進行memory map的相應設置,本設計把QRAM地址設置在$1000~$1FFF位置。</p><p>  5.5USB模塊調試</p><p>  通過輔助軟件Bus Hound讀取

100、設備插入PC機后,USB端口的部分數據抓?。?lt;/p><p>  截圖一:獲得設備PID/VID:USB\VID_0425&PID_050E</p><p>  截圖二:配置描述符SET_CONFIGUREATION_DESCRIPTOR</p><p>  由此可知,PC對USB設備發(fā)送各種標準請求,并獲得了相關描述符,即PC已經識別到該設備已接入,配置完

101、成后就可以訪問。</p><p>  5.6 系統(tǒng)集成模塊調試</p><p>  由于Code warrior支持TBDML在線仿真調試,我們可以通過觀察寄存器相關變化,了解系統(tǒng)運行狀況。那么本部分系統(tǒng)調試分為以下幾個步驟:</p><p>  調試一:Code warrior集成開發(fā)環(huán)境調試仿真器</p><p><b>  調

102、試二:主程序執(zhí)行</b></p><p>  調試三:收到USB的數據,完成數據的存儲</p><p>  調試四:進入輸出比較成功中斷</p><p>  調試五:讀入USB傳下來的數據,低電平時間</p><p>  調試六:再次進入中斷后,讀入高電平時間</p><p>  5.7 系統(tǒng)集成模塊調試脈

103、沖輸出照片</p><p>  第六章 PC端VC++程序編制及調試</p><p><b>  6.1 引言</b></p><p>  本模塊是在PC上進行驅動程序的修改應用和PC圖像界面的制作。使用工具為DDK,Driver studio,及VC Studio 2005。</p><p>  圖像界面就是使用VC

104、進行編程實現,利用MFC進行框圖的設計,調用winapi的驅動設備相關api函數,對設備進行打開、讀取、寫入、關閉等操作。就是利用以下函數:open、read、write、close及ioctl等對設備進行操作訪問。</p><p>  C++是在C語言基礎上發(fā)展的一門語言,它繼承了C語言的高效,簡潔,快速,和高移植性的傳統(tǒng)。C++包含C語言的內容,主要是在C語言的基礎上添加了面向對象編成(OOP)的方法,C語言

105、是面向過程的編成。所以兩種語言的基本語法和語義是相同的。</p><p>  C++語言是在C語言的基礎是擴展而成的.所以兩種語言的基本語法和語義是相同。C++中加入了面向對程序設計(OOP)的特征。</p><p>  API就是Windows應用程序設計接口的意思。API是一個程序內(或一組相關程序內)的一組函數調用,程序員用它創(chuàng)建其他程序。不必知道函內部,只要知道函數原型及返回值。將

106、一組函數轉入API的問題實質是此函數提供每個人可使用的技術規(guī)范資料。Windows API大概是今天世界上最著名的API了?,F在API以發(fā)展到了Win32 API。在它的核心中,依靠三個主要組件提供Windows的大部分函數。這三個組件分別是USER32.DLL,GDI32.DLL,KERNEL32.DLL。使用API(應用編程接口)構建業(yè)務是實現開放式業(yè)務結構的關鍵技術。</p><p>  MFC(Micro

107、soft基本類)庫封裝SDK結構、功能及應用程序框架內部技術,該應用程序框架隱藏過去Windows程序員不得不處理的許多重復性工作。最后要明白MFC不只是一個功能單純的界面開發(fā)系統(tǒng),它提供的類絕大部分用來進行界面開發(fā),關聯一個窗口的動作,但它提供的類中有好多類不與一個窗口關聯,即類的作用不是一個界面類,不實現對一個窗口對象的控制(如創(chuàng)建,銷毀)。而是一些在Windows (用MFC編寫的程序絕大部分都在Windows中運行)中實現內部處

108、理的類,如數據庫的管理類等。 </p><p>  MFC程序設計中的對話框制作過程示例:</p><p>  6.2 主機程序的實現及功能</p><p>  6.2.1 USB接口函數介紹</p><p>  USB接口函數被定義在usb.cpp中,應用程序對設備進行操作時,把USB設備當作字符型設備訪問方式進行。其相關對驅動的調用函數為

109、:</p><p><b>  表6.1</b></p><p>  6.2.2 PC端操作界面</p><p>  利用VC++編程,MFC實現窗口對話框。用戶可以通過在對話框的提示下,進行操作,完成對脈沖參數的賦值。對話框包括:</p><p>  設備狀態(tài):顯示USB設備是否被檢測到,是否完成了字符設備打開操作。&

110、lt;/p><p>  設備信息:顯示窗口對設備寫入的相關數據。</p><p>  占空比:輸出脈沖的占空比。</p><p>  頻率:輸出脈沖的頻率參數,程序通過運算產生對總線時鐘的計數個數值,該數字值與占空比確定輸出高電平和低電平各自占的總線時鐘個數。</p><p>  個數:輸出脈沖個數控制。</p><p>

111、  ON/OFF:輸出使能,1:代表輸出允許,0:代表輸出關閉。</p><p>  6.2.3 程序流程及說明</p><p><b>  致謝</b></p><p>  本設計在老師不厭其煩的教導、同學及朋友的協(xié)作討論配合,我終于達到基本目標。</p><p>  首先要特別感謝指導我的**老師,他在百忙之中教我修

112、改,他的一絲不茍的精神,教會了我對待任何事情都要細心!而且他還教會了我制作PCB電路板等方面的知識和技能。這不僅在本次畢業(yè)設計起重要作用,更會在我以后的工作和學習中發(fā)揮重要作用。在此,對**老師表示由衷的感謝。</p><p>  同時,本次畢業(yè)設計也得到了來自其他老師和同學的幫助和指導,對我的大師兄張紅在提供資料方面的幫助表示感謝;還有其他對本次設計給予我?guī)椭睦蠋熀屯瑢W表示感謝。</p><

113、;p><b>  參 考 文 獻</b></p><p>  [1] 王宜懷,劉曉升等著.嵌入式系統(tǒng)---使用HCS12微控制器的設計與應用[M].北京:北京航空航天大學出版社,2008.3 </p><p>  [2] 邵貝貝.單片機嵌入式應用的在線開發(fā)方法[M].北京:清華大學出版社,2003</p><p>  [3] 王威等著.H

114、CS12微控制器原理及應用[M].北京:北京航空航天大學出版社,2007</p><p>  [4] 常越.M68HC08單片機原理及C語言開發(fā)實例[M].北京:北京航空航天大學出版社,2005</p><p>  [5] 張友德,涂時亮,陳章龍等著.M68HC08系列單片機原理與應用—嵌入式系統(tǒng)初步[M].上海:復旦大學出版社,2001.9 </p><p>  

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論