基于單片機的串口通信模塊設計_第1頁
基于單片機的串口通信模塊設計_第2頁
基于單片機的串口通信模塊設計_第3頁
基于單片機的串口通信模塊設計_第4頁
基于單片機的串口通信模塊設計_第5頁
已閱讀5頁,還剩58頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

畢業設計說明書基于單片機的串口通信模塊設計

TOC\o"1-3"\u

1緒論1.1研究背景通信是指不同的獨立系統利用線路互相交換數據,它的主要目的是將數據從一端傳送到另一端,實現數據的交換。在現代工業控制中,通常采用計算機作為上位機與下層的實時控制與監測設備進行通訊。現場數據必須通過一個數據收集器傳給上位機,同樣上位機向現場設備發命令也必須通過數據收集器。串行通信因其結構簡單、執行速度快、抗干擾能力強等優點,已被廣泛應用于數據采集和過程控制等領域。計算機與外界的信息交換稱為通信。基本的通信方式有并行通信和串行通信兩種。串行通信是指一條信息額各位數據被逐位按順序傳送的通信方式。串行通信的特點是:數據位傳送,按位順序進行,最少只需要一根傳輸線即可完成,成本低但傳送速度快,串行通信的距離可以從幾米到幾千米。隨著計算機技術尤其是單片微型機技術的發展,人們已越來越多地采用單片機來對一些工業控制系統中如溫度、流量和壓力等參數進行監測和控制。PC機具有強大的監控和管理能力,而單片機則具有快速及靈和的控制特點,通過PC機的RS-232串行接口與外部設備進行通信,是許多測控系統中常用的一種通信解決方案。而隨著USB接口技術的成熟和使用的普及,由于USB接口有著RS-232(DB-9)串口無法比擬的優點,RS-232(DB-9)串口正在逐步地為USB接口所替代。而在現在的大多數筆記本電腦中,出于節省物理空間和用處不大等原因,RS-232(DB-9)串口已不再設置,這就約束了基于RS-232(DB-9)串口與PC機聯絡的單片機設備的使用范圍。當前USB接口逐步取代RS-232(DB-9)串口已是大勢所趨,單片機同計算機的USB通信在實際工作中的應用范圍也將越來越廣。本文所介紹的單片機和PC機的USB通信方法,電路簡單,兼容性好,可移植性強,故可作為單片機同計算機的USB通信模塊廣泛應用于工業和電子產品的開發中。因此研究如何實現PC機與單片機通過USB之間的通信具有非常重要的現實意義。1.2國內外研究現狀由于計算機工業自動控制和檢測系統越來越多地采用集總分散系統,而主從式是其中最為普遍的一種方式,因此各種各樣主從式總線通信系統的方法不斷涌現。目前比較常用的有利用IIC總線傳輸協議設計的主從式總線通信系統,還有的是利用SPI總線傳輸協議和USB協議以及串口通信等設計的主從式總線通信系統[6,7]。由于主從式總線通信系統采用的方法眾多,因此目前國內外一般是根據實際情況而采用不同的方法去實現主從式通信系統的功能[8]。比如,如果要設計的主從式通信系統只是小范圍內傳送數據,甚至只是板間傳送數據,或者要求使用的I/O口很少,而對于數據的抗干擾能力的要求不是很高的話,則采用IIC總線傳輸協議是最合適不過的了。IIC總線支持任何一種IC制造工藝,并且PHILIPS和其他廠商提供了種類非常豐富的I2C兼容芯片。作為一個專利的控制總線,IIC已經成為世界性的工業標準。每個器件都有一個唯一的地址,而且可以是單接收的器件(例如:LCD驅動器)或可以接收也可以發送的器件(例如:存儲器)。發送器或接收器可以在主模式或從模式下操作,這取決于芯片是否必須啟動數據的傳輸還是僅僅被尋址。IIC是一個多主總線,即它可由多個連接的器件控制[9]。基本的I2C總線規范于20年前發布,其數據傳輸速率最高為100Kbits/s,采用7位尋址。但是由于數據傳輸速率和應用功能的迅速增加,I2C總線也增強為快速模式(400Kbits/s)和10位尋址以滿足更高速度和更大尋址空間的需求[10]。IIC總線始終和先進技術保持同步,但仍然保持其向下兼容性。并且最近還增加了高速模式,其速度可達3.4Mbits/s。它使得IIC總線能夠支持現有以及將來的高速串行傳輸應用,例如EEPROM和Flash存儲器[11]。而如果需要遠距離傳輸數據,且對數據傳送的抗干擾能力要求有點高,則可以使用RS-422或者RS-485協議進行主從式通信系統的設計[12]。另外,USB協議則是一種比較新型、快速、靈活的總線傳輸方法,此通信系統通常只有一個主機,利用此方法設計的通信息有如下特點:(1)適用范圍廣泛,適用于數碼相機,高速數據采集等多種設備;(2)支持熱拔插,且此過程由系統自動完成,無需用戶干預;(3)采用菊花鏈式的星型總線結構,支持多達127個外設同時連接;(4)5Mbps、12Mbps和480Mbps的3種速度模式,可以滿足不同外設對速度的要求。USB發展到今天,總共有三種標準:1996年發布的USB1.0,1998年發布的USB1.1以及剛剛發布的最新標準USB2.0,此三種標準最大的差別就在于數據傳輸率方面,在其他方面也不同程度的改進,總體來說,就目前的USB2.0而言,已經擁有什么出眾的性能與傳輸速率。USB數據線由兩對線組成,一對電力線,通過電力線可以為USB設備提供5V電壓,允許通過最大電流為500mA,這個數字不算很大,但好在聊勝于無,可以滿足一些耗電量較少的設備的需求,通過特殊的USB互聯設備,我們還可以用USB口實現雙機聯網,速度是USB1.1的標準達12Mbps(1.5MB/S),可惜僅能進行簡單的數據交換,不能稱作真正的網絡[13,14]。當所要設計的主從式總線通信系統采用譬如MSP430單片機當主機或者從機時,由于此單片機具有支持SPI的片內串行通信接口,所以可以采用SPI總線傳輸協議進行設計。SPI是英語SerialPeripheralInterface的縮寫,顧名思義就是串行外圍設備接口[15]。是Motorola首先在器MC68HCXX系列處理器上定義的[16]。SPI接口主要應用在EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳,同時為PCB的布局上節省空間,提供方便,正是出于這種簡單易用的特性,現在越來越多的芯片集成了這種通信協議,比如AT91RM9200。串行外圍設備接口SPI是一種同步串行接口,因其硬件功能強,與SPI有關的軟件就相當簡單,可使MSP430單片機有更多的時間處理其他任務。此時,所設計的系統擁有極低的功耗,豐富的片內外設,卓越的工作性能和方便靈活等優點[17]。1.3本課題研究的主要內容(1)串行通信原理介紹;(2)USB技術原理分析;(3)單片機和PC機通過USB實現串行通信設計與實現。本設計主要包含以下兩個方面:(1)硬件設計:單片機及外圍電路設計;(2)軟件設計:單片機的通信控制程序,PC機的通信程序。2串行通信基礎2.1串口通信的基本知識2.1.1并行通信與串行通信微機的信息交換有兩種方式進行:串行通信方式和并行通信方式。1.串行通信串行通信的設備是最古老的溝通機制之一。從IBM個人電腦和兼容式電腦的時代開始,幾乎所有的計算機都配有一個或多個串行端口和一個并行端口。顧名思義,一個串行端口發送和接收串行數據,一次一位數據。相反,一個并行端口一次發送和接收8位數據,使用8個單獨的線路。提示:要使串行通信工作,你只需要一根三根線的電纜——1根發送,1根用來接收,1根接地。對于并行通信,你需要采用8條導線。盡管相對較慢的傳輸速度遠低于并行端口,串行端口通信依然因為它簡單的設備、高的成本效益以及差錯可控性強而成為一個受歡迎的連接選項。圖2-1顯示了使用串行口連接到計算機的設備。圖2-1一些常見的串行設備,調制解調器,鼠標和路由器雖然今天的消費產品中在串行連接的地方使用USB連接,但還有很多的設備使用串行端口作為與外部世界的唯一連接。一個串行設備一次發送和接收一位數據,有些設備因為在同一時間發送和接收數據,被稱為全雙工設備。其他可以在任何時間發送或接收被稱為單雙工。開始傳輸時,設備先發送一個起始位,其次是數據位。該數據位可以是五,六,七,或8位,基于商定而定。兩個發送方和接收器必須設置為相同的數據通信比特或正確的比特率。數據位被發送完后,就會發送一個停止位。一個停止位可以是一位,一個半位,或兩位。波特率是數據從一個設備到另一個的傳輸速度。波特率通常以每秒的位數(bps)來計量。注意:大多數串行設備傳輸七,八位數據。為了檢測數據已被正確發送,一個可選的校驗位可以同數據位在一起。一個校驗位可以是以下內容:奇數,偶數,mark,space或無(空的奇偶位標志幾乎總是被使用)。使用校驗位提供了一個基本的機制,以檢測已發送數據損壞,但不保證檢查數據本身的錯誤。然而,校驗位可用于改善完整性數據傳送。大多數串行端口使用RS232C標準,它指定了一個連接器25針或9針(見圖2-2)。大多數系列設備使用9針連接器。圖2-225針和9針串行接口2.并行通信在計算機和終端之間的數據傳輸通常是靠電纜或信道上的電流或電壓變化實現的。如果一組數據的各數據位在多條線上同時被傳送,這種傳輸被稱為并行通信,如圖2-3所示。并行通信時數據的各個位同時傳送,可以字或字節為單位并行進行。并行通信速度快,但用的通信線多、成本高,故不宜進行遠距離通信。計算機或PLC各種內部總線就是以并行方式傳送數據的。圖2-3并行通信2.1.2串行通信工作模式如果在通信過程的任意時刻,信息只能由一方A傳到另一方B,則稱為單工。如果在任意時刻,信息既可由A傳到B,又能由B傳A,但只能由一個方向上的傳輸存在,稱為半雙工傳輸。如果在任意時刻,線路上存在A到B和B到A的雙向信號傳輸,則稱為全雙工。電話線就是二線全雙工信道。由于采用了回波抵消技術,雙向的傳輸信號不致混淆不清。雙工信道有時也將收、發信道分開,采用分離的線路或頻帶傳輸相反方向的信號,如回線傳輸。在串行通信中,數據通常是在兩個站(如終端和微機)之間進行傳送,按照數據流的方向可分成三種基本的傳送方式:全雙工、半雙工、和單工。但單工目前已很少采用,下面僅介紹前兩種方式。1.半雙工方式若使用同一根傳輸線既作接收又作發送,雖然數據可以在兩個方向上傳送,但通信雙方不能同時收發數據,這樣的傳送方式就是半雙工制,如圖2-4所示。采用半雙工方式時,通信系統每一端的發送器和接收器,通過收/發開關轉接到通信線上,進行方向的切換,因此,會產生時間延遲。收/發開關實際上是由軟件控制的電子開關。圖2-4半雙工方式當計算機主機用串行接口連接顯示終端時,在半雙工方式中,輸入過程和輸出過程使用同一通路。有些計算機和顯示終端之間采用半雙工方式工作,這時,從鍵盤打入的字符在發送到主機的同時就被送到終端上顯示出來,而不是用回送的辦法,所以避免了接收過程和發送過程同時進行的情況。目前多數終端和串行接口都為半雙工方式提供了換向能力,也為全雙工方式提供了兩條獨立的引腳。在實際使用時,一般并不需要通信雙方同時既發送又接收,像打印機這類的單向傳送設備,半雙工甚至單工就能勝任,也無需倒向。2.全雙工方式當數據的發送和接收分流,分別由兩根不同的傳輸線傳送時,通信雙方都能在同一時刻進行發送和接收操作,這樣的傳送方式就是全雙工制,如圖2-5所示。在全雙工方式下,通信系統的每一端都設置了發送器和接收器,因此,能控制數據同時在兩個方向上傳送。全雙工方式無需進行方向的切換,因此,沒有切換操作所產生的時間延遲,這對那些不能有時間延誤的交互式應用(例如遠程監測和控制系統)十分有利。這種方式要求通訊雙方均有發送器和接收器,同時,需要2根數據線傳送數據信號(可能還需要控制線和狀態線,以及地線)。圖2-5全雙工2.1.3異步傳輸和同步傳輸串行傳輸中,數據是一位一位按照到達的順序依次傳輸的,每位數據的發送和接收都需要時鐘來控制。發送端通過發送時鐘確定數據位的開始和結束,接收端需要在適當的時間間隔對數據流進行采樣來正確的識別數據。接收端和發送端必須保持步調一致,否則數據傳輸就會出現差錯。為了解決以上問題,串行傳輸可采用以下兩種方法:異步傳輸和同步傳輸。1.異步傳輸通常,異步傳輸是以字符為傳輸單位,每個字符都要附加1位起始位和1位停止位,以標記一個字符的開始和結束,并以此實現數據傳輸同步。所謂異步傳輸是指字符與字符(一個字符結束到下一個字符開始)之間的時間間隔是可變的,并不需要嚴格地限制它們的時間關系。起始位對應于二進制值0,以低電平表示,占用1位寬度。停止位對應于二進制值1,以高電平表示,占用1~2位寬度。一個字符占用5~8位,具體取決于數據所采用的字符集。例如,電報碼字符為5位、ASCII碼字符為7位、漢字碼則為8位。此外,還要附加1位奇偶校驗位,可以選擇奇校驗或偶校驗方式對該字符實施簡單的差錯控制。發送端與接收端除了采用相同的數據格式(字符的位數、停止位的位數、有無校驗位及校驗方式等)外,還應當采用相同的傳輸速率。典型的速率有:9600b/s、19.2kb/s、56kb/s等。異步傳輸又稱為起止式異步通信方式,其優點是簡單、可靠,適用于面向字符的、低速的異步通信場合。例如,計算機與Modem之間的通信就是采用這種方式。它的缺點是通信開銷大,每傳輸一個字符都要額外附加2~3位,通信效率比較低。例如,在使用Modem上網時,普遍感覺速度很慢,除了傳輸速率低之外,與通信開銷大、通信效率低也密切相關。

2.同步傳輸通常,同步傳輸是以數據塊為傳輸單位。每個數據塊的頭部和尾部都要附加一個特殊的字符或比特序列,標記一個數據塊的開始和結束,一般還要附加一個校驗序列(如16位或32位CRC校驗碼),以便對數據塊進行差錯控制。所謂同步傳輸是指數據塊與數據塊之間的時間間隔是固定的,必須嚴格地規定它們的時間關系。和異步傳輸相比,數據傳輸單位的加長容易引起時鐘漂移。為了保證接收端能夠正確地區分數據流中的每個數據位,收發雙主必須通過某種方法建立起同步的時鐘。可以在發送器和接收器之間提供一條獨立的時鐘線路,由線路的一端(發送器或者接收器)定期地在每個比特時間中向線路發送一個短脈沖信號,另一端則將這些有規律的脈沖作為時鐘。這種技術在短距離傳輸時表現良好,但在長距離傳輸中,定時脈沖可能會和信息信號一樣受到破壞,從而出現定時誤差。另一種方法是通過采用嵌有時鐘信息的數據編碼位向接收端提供同步信息。3USB通信原理簡介3.1USB簡介USB(UniversalSerialBus,通用串行總線)是以Intel為主,并有Compaq,Microsoft,IBM,DEC,NorthernTelecom以及日本NEC等共七家公司共同制定的串行接口標準,1994年11月制定了第一個草案,1996年2月公布了USB規范版本1.0。USB可把多達127個外設同時聯到你的系統上,所有的外設通過協議來共享USB的帶寬,其12Mbps的帶寬對于鍵盤,鼠標等低中速外設是完全足夠的(注:在1999年2月發布的USB規范版本2.0草案中,已建議將12Mbps的帶寬提升到120-240Mbps。)。USB允許外設在主機和其它外設工作時進行連接、配置、使用及移除,即所謂的即插即用(Plug&Play)。同時USB總線的應用可以清除PC上過多的I/O端口,而以一個串行通道取代,使PC與外設之間的連接更容易。3.1.1USB設備USB設備包括Hub和功能設備,而功能設備又可以細分為定位設備字符設備等等。為了進一步敘述,我們給出端點(endpoint)和管道(pipe)的概念。端點:每一個USB設備在主機看來就是一個端點的集合,主機只能通過端點與設備進行通訊,以使用設備的功能。每個端點實際上就是一個一定大小的數據緩沖區,這些端點在設備出廠時就已定義好。在USB系統中,每一個端點都有唯一的地址,這是由設備地址和端點號給出的。每個端點都有一定的特性。其中包括:傳輸方式、總線訪問、頻率、帶寬、端點號、數據包的最大容量等等。端點必須在設備配置后才能生效(端點0除外)。端點0通常為控制端點。用于設備初始化參數等。端點12等一般用作數據端點存放主機與設備間往來的數據。管道:一個USB管道是驅動程序的一個數據緩沖區與一個外設端點的連接,它代表了一種在兩者之間移動數據的能力。一旦設備被配置,管道就存在了。管道有兩種類型,數據流管道(其中的數據沒有USB定義的結構)與消息管道(其中的數據必須有USB定義的結構)管道只是一個邏輯上的概念。所有的設備必須支持端點0以作為設備的控制管道。通過控制管道可以獲取完全描述USB設備的信息,包括:設備類型、電源管理、配置、端點描述等等只要設備連接到USB上并且上電端點0就可以被訪問與之對應的控制管道就存在了。一個USB設備可以分為三個層圖(如圖3-1所示)。最底層是總線接口,用來發送與接收包。中間層處理總線接口與不同的端點之間的數據流通。一個端點是數據最終的使用者或提供者,它可以看作數據的源或接收端。最上層就是USB設備所提供的功能,比如鼠標或鍵盤等。圖3-1設備層次結構3.1.2USB的優點USB通信有如下幾個優點:1.USB為所有的USB外設提供了單一的、易于使用的標準的連接類型。這樣一來就簡化了USB外設的設計,同時也簡化了用戶在判斷哪個插頭對應哪個插槽時的任務,實現了單一的數據通用接口。2.整個的USB的系統只有一個端口和一個中斷,節省了系統資源。3.USB支持熱插拔(hotplug)和PNP(Plug-and-Play),也就是說在不關閉PC的情況下可以安全的插上和斷開USB設備,計算機系統動態地檢測外設的插拔,并且動態地加載驅動程序。其他普通的外圍連接標準,如SCSI設備等必須在關掉主機的情況下才能插拔外圍設備。4.USB在設備供電方面提供了靈活性。USB直接連接到Hub或者是連接到Host的設備可以通過USB電纜供電,也可以通過電池或者其它的電力設備來供電,或使用兩種供電方式的組合,并且支持節約能源的掛機和喚醒模式。5.USB提供全速12Mbps的速率和低速1.5Mbps的速率來適應各種不同類型的外設,USB2.0還支持480Mbps的高速傳輸速率。6.為了適應各種不同類型外圍設備的要求,USB提供了四種不同的數據傳輸類型:控制傳輸Bulk數據、傳輸中斷數據傳輸和同步數據傳輸。同步數據傳輸可為音頻和視頻等實時設備的實時數據傳輸提供固定帶寬。7.USB的端口具有很靈活的擴展性,一個USB端口串接上一個USBHub就可以擴展為多個USB端口。3.1.3傳輸方式USB有四種的傳輸方式:控制(Control)、同步(isochronous)、中斷(interrupt)、大量(bulk)。如果是從硬件開始來設計整個的系統那還要正確選擇傳輸的方式,而作為一個驅動程序的書寫者就只需要弄清楚其采用的什么工作方式就行了。通常所有的傳輸方式下的主動權都在PC邊。1.控制(Control)方式傳輸:控制傳輸是雙向傳輸,數據量通常較小。USB系統軟件用來主要進行查詢、配置和給USB設備發送通用的命令。控制傳輸方式可以包括8、16、32和64字節的數據,這依賴于設備和傳輸速度。控制傳輸典型地用在主計算機和USB外設之間的端點(Endpoint)0之間的傳輸,但是指定供應商的控制傳輸能用到其它的端點。2.同步(isochronous)方式:傳輸同步傳輸提供了確定的帶寬和間隔時間latency)。它被用于時間嚴格并具有較強容錯性的流數據傳輸,或者用于要求恒定的數據傳輸率的即時應用中。例如,執行即時通話的網絡電話應用時,使用同步傳輸模式是很好的選擇。同步數據要求確定的帶寬值和確定的最大傳輸次數。對于同步傳輸來說,即時的數據傳遞比完美的精度和數據的完整性更重要一些。3.中斷(interrupt)方式:傳輸中斷方式傳輸主要用于定時查詢設備是否有中斷數據要傳輸,設備的端點模式器的結構決定了它的查詢頻率,從1到255ms之間,這種傳輸方式典型的應用在少量的分散的,不可預測數據的傳輸。鍵盤、操縱桿和鼠標就屬于這一類型。中斷方式傳輸是單向的并且對于host來說只有輸入的方式。4.大量(bulk)傳輸:主要應用在數據大量傳輸和接受數據上,同時又沒有帶寬和間隔時間要求的情況下,要求保證傳輸。打印機和掃描儀屬于這種類型。這種類型的設備適合于傳輸非常慢和大量被延遲的傳輸,可以等到所有其它類型的數據的傳輸完成之后再傳輸和接收數據。USB將其有效的帶寬分成各個不同的幀(frame),每幀通常是1ms時間長。每個設備每幀只能傳輸一個同步的傳輸包。在完成了系統的配置信息和連接之后,USB的host就對不同的傳輸點和傳輸方式做一個統籌安排,用來適應整個的USB的帶寬。通常情況下,同步方式和中斷方式的傳輸會占據整個帶寬的90%剩下的就安排給控制方式傳輸數據。3.2USB的總線協議3.2.1總線拓撲結構圖3-2USB總線拓撲USB總線的物理連接是一種分層的菊花鏈結構,集線器(hub)是每個星形結構的中心。PC機就是主機和根Hub,用戶可以將外設或附加的Hub與之相連。這些附加的Hub可以連接另外的外設以及下層HubUSB。支持最多5個Hub層以及127個外設。圖3-2描述了USB的物理拓撲結構,從中可以看出每一段的連接都是點對點的。3.2.2USB的物理層USB的物理接口包括電氣特性和機械特性。USB通過一個四線電纜來傳輸信號與電源,如圖3-3所示。圖3-3USB電纜定義其中,D+和D-是一對差模的信號線,而VBus和GND則提供了+5V的電源,它可以給一些設備(包括Hub)供電,但也要有一定的條件限制。USB提供了兩種數據傳輸率:一種是12Mb的高速(fullspeed)模式,另一種是1.5Mb的低速模式。這兩種模式可以同時存在于一個USB系統中。而引入低速模式,主要是為了降低要求不高的設備的成本,比如鼠標、鍵盤等等。USB信號線在高速模式下必須使用帶有屏蔽的雙絞線,而且最長不能超過5m;而在低速模式時中可以使用不帶屏蔽或不是雙絞的線,但最長不能超過3m。這主要是由于信號衰減的限制。為了提供信號電壓保證,以及與終端負載相匹配,在電纜的每一端都使用了不平衡的終端負載。這種終端負載也保證了能夠檢測外設與端口的連接或分離,并且可以區分高速與低速設備。所有的設備都有上行的接口。上行和下行的接頭是不能互換的,這保證了不會有非法的連接出現。插頭與插座有A和B兩個系列,系列A用于基本固定的外圍設備,而系列B用于經常拔插的設備,這兩個系列是不能互換的。3.2.3USB總線協議所有總線操作都可以歸結為三種包的傳輸。任何操作都是從主機開始的,主機以預先排好的時序,發出一個描述操作類型、方向、外設地址以及端點號的包,我們稱之為令牌包(TokenPacket)。然后在令牌中指定的數據發送者發出一個數據包或者指出它沒有數據可以傳輸。而數據的目的地一般要以一個確認包(HandshakePacket)來作出響應以表明傳輸是否成功。1.域的類型同步域(SYNCfield):所有的包都起始于SYNC域,它被用于本地時鐘與輸入信號的同步,并且在長度上定義為8位。SYNC的最后兩位作為一個記號表明PID域(標識域)的開始。。標識域(PacketIdentifierField):對于每個包,PID都是緊跟著SYNC的,PID指明了包的類型及其格式。主機和所有的外設都必須對接收到的PID域進行解碼。如果出現錯誤或者解碼為未定義的值,那么這個包就會被接收者忽略。如果外設接收到一個PID,它所指明的操作類型或者方向不被支持,外設將不作響應。地址域(AddressField):外設端點都是由地址域指明的,它包括兩個子域:外設地址和外設端點。外設必須解讀這兩個域,其中若有任何一個不匹配,這個令牌就會被忽略。外設地址域(ADDR)指定了外設,它根據PID所說明的令牌的類型,指明了外設是數據包的發送者或接收者。ADDR共6位,因此最多可以有127個地址。一旦外設被復位或上電,外設的地址被缺省為0,這時必須在主機枚舉過程中被賦予一個獨一的地址。而0地址只能用于缺省值而不能分配作一般的地址。端點域(ENDP)有4位,它使設備可以擁有幾個子通道。所有的設備必須支持一個控制端點0(endpoint0)。低速的設備最多支持2個端點:0和一個附加端點。高速設備可以支持最多16個端點。幀號域(FrameNumberField):這是一個11位的域,指明了目前幀的排號,每過一幀(1ms)這個域的值加1,到達最大值XFF后返回0。這個域只存在于每幀開始時的SOF令牌中。數據域(DataField):范圍是0~1023字節,而且必須是整數個字節。CRC校驗:包括令牌校驗和數據校驗。2.包的類型令牌包(TokenPacked):其中包括:IN(輸入)、OUT(輸出)、SETUP(設置)和SOF(StartofFrame,幀起始)四種類型。其中IN、OUT、SETUP的格式如圖3-4所示。圖3-4IN、OUT、SETUP數據格式對于OUT和SETUP來說,ADDR和ENDP中所指明的端點將接收到主機發出的數據包,而對IN來說,所指定的端點將輸出一個數據包。Token和SOF在三個字節的時間內以一個EOP(EndofPacket)結束。如果一個包被解碼為Token包但是并沒有在3個字節時間內以EOP結束,就會被看作非法包或該包被忽略。對于SOF包,它的格式如圖3-5所示。主機以一定的速率(1ms±0.05一次)發送SOF包,SOF不引起任何操作。圖3-5SOF數據格式數據包:包括Data0和Data1兩種類型。這兩種包的定義是為了支持數據觸發同步。數據包包含了PID、DATA和CRC三個域,如圖3-6所示。圖3-6DATA數據格式應答包(HandshakePacket):僅包含一個如圖3-7所示的PID域。Handshake用來報告數據傳輸的狀態。只有支持流控制的傳輸類型(控制中斷和批傳輸)才能返回Handshake。圖3-7PID數據格式Handshake包有三種類型:(1)確認包ACK:表明數據接收成功。(2)無效包NAK:指出設備暫時不能傳送或接收數據,但無需主機介入,可以解釋成設備忙。(3)出錯包STALL:指出設備不能傳送或接收數據,但需要主機介入才能恢復,NAK和STALL不能由主機發出。特殊包(Special):PID名稱為PRE(preamble),用于低速操作的情形。3.總線操作的格式圖3-8批操作流程批操作(bulktransaction):批操作包括令牌、數據、應答三個階段,如圖3-8所示。對于輸入操作,如果設備不能返回數據,那么必須發出NAK或STALL包;對于輸出如果設備不能接收數據,也要返回NAK或STALL。圖3-9描述了批操作的讀寫過程以及序列位(sequencebit)和數據包PID的使用。圖3-9批操作讀寫過程控制操作(controltransaction):主要包括兩個操作階段(transactionstage):設置和狀態。圖3-10給出了設置操作的細節,如果數據沒有正確接收,那么設備就會忽略它,而且不返回應答包。圖3-10控制操作流程控制操作的詳細描述如圖3-11所示,其中我們要注意數據包PID的使用。圖3-11控制操作讀寫過程中斷操作(interrupttransaction):中斷操作只有輸入這一個方向,具體格式與批操作的輸入情形如圖3-12所示。圖3-12中斷操作流程同步操作(isochronoustransaction):同步操作不同于其他類型,如圖3-13所示,其只包含兩個階段:令牌和數據。因為同步傳輸不支持重發的能力,所以沒有應答階段。另外它也不支持數據的觸發同步與重試。圖3-13同步操作流程4.數據觸發同步與重試USB提供了保證數據序列同步的機制,這一機制確保了數據傳輸的準確性。這一同步過程是通過Data0和Data1的PID以及發送者與接收者上的數據觸發序列位(datatogglesequencebit)來實現的。接收者的序列位只有當接收到一個正確的數據包時(包括正確的PID)才能被觸發。而發送者的序列位只有當接收到確認包ACK時才能被觸發。在總線傳輸的開始,發送者與接收者的序列位必須一致,這是由控制命令來實現的。同步傳輸方式不支持數據觸發同步。圖3-14、圖3-15、圖3-16說明了數據觸發同步的基本原理。圖3-14數據觸發與同步一圖3-15數據觸發與同步二圖3-16數據觸發與同步三每次總線操作,接收者將發送者的序列位(被譯碼成數據包PID的一位,即Data0或Data1)與本身的相比較。如果數據不能接收,則必須發送NAK。如果數據可以被接收,并且兩者的序列位匹配,則該數據被接收并且發送ACK,同時接收者的序列位被觸發。如果數據可以被接收,但兩者的序列位不匹配,則接收者只發出ACK而不進行其它操作。對于發送者來說,在接收到NAK時或在規定時間內沒有接收到ACK,則將上一次的數據重發。5.低速操作Hub具有禁止高速信號進入低速設備的能力,這既防止了電磁干擾的發生,又保護了低速設備。圖3-17是一次低速的輸入操作,主機發送令牌與應答包并且接收了一個數據包。圖3-17低速方式的輸入操作所有下行的低速傳輸的包,必須先發送一個PRE包。Hub必須解釋PRE包,而所有其它的USB設備必須忽略這個包。主機在發送完PRE包后,必須等待至少4位的時間,而在這個期間,Hub完成必要的設置,使之能接收低速的信號。在接收到EOP信號之后,Hub關閉低速設備的端口。上行的操作則沒有上述的行為,低速與高速是一樣的。低速操作還有其它的限制:(1)數據包最大限制為8個字節。(2)只支持中斷和控制傳輸方式。6.錯誤檢驗與恢復USB具有檢查錯誤的能力,并且可以根據傳輸類型的要求進行相應的處理。例如,控制傳輸的需要很高的數據準確度,因此支持所有錯誤檢驗與重試來實現端對端的數據完整傳輸。而同步傳輸不允許重試,因此必須具有一定的容錯性。USB這種檢查錯誤的能力包括:PID檢驗、CRC檢驗、總線時間溢出以及EOP錯誤檢驗等等。4PC與單片機通過USB的通信設計4.1設計方案選擇由于實際應用中單片機在數據處理能力、人機交互等方面往往不能滿足要求,因而通常用PC來彌補單片機的這些不足。例如,在工程應用中,常常由一臺PC機和一臺單片機構成主從式計算機測控系統。在這樣的系統中,以單片機為核心的智能測控儀表(從機)作為現場測控設備,完成數據的采集、處理和控制各種任務,同時將數據傳給PC機(主機),PC機將這些數據加工處理后,進行顯示、打印報表等。PC機也可以將各種控制命令傳送給單片機,干預單片機系統的運行,從而發揮PC機的優勢。要實現這樣的功能,就涉及到PC機與單片機之間的通信問題。現在的計算機提供了各種各樣的串口,他們支持不同的通信協議,有著不同的功能。目前計算機提供的串口有RS-232,RJ45,USB2.0等。4.1.1PC機同單片機通信存在的問題目前,51單片機同PC機的通信在大多數情況下仍然是使用RS-232(DB-9)串口作為通信接口實現的。而隨著USB接口技術的成熟和使用的普及,由于USB接口有著一系列RS-232(DB-9)串口無法比擬的優點,RS-232(DB-9)串口正在逐步的為USB接口所替代。而在現在的大多數筆記本電腦中,出于節省物理空間和用處不大等原因,RS-232(DB-9)串口已不再設置,這就約束了基于RS-232(DB-9)串口與PC機聯絡的單片機設備的使用范圍。4.1.2USB接口同RS-232(DB-9)串口的比較通過USB接口和RS-232(DB-9)的比較,不難發現:(1)USB接口支持即插即用和熱插拔,而RS-232(DB-9)串口不支持即插即用和熱插拔,設備安裝后需重啟計算機方可使用。(2)USB接口的傳輸速率較快,可達480Mbps(V2.0),而RS-232(DB-9)串口的最高速率僅為19200波特。(3)USB接口占用體積較小,插拔方便;而RS-232(DB-9)串口的的插拔需要使用改錐,且在機箱后操作,比較麻煩。綜上可知,USB接口取代RS-232(DB-9)串口的趨勢不可逆轉。另外在本設計中選擇使用的單片機是AT8C951。AT89C51是一種低功耗、高性能的8位單片微型計算機,它采用了CMOS工藝和ATMEL公司的高密度NVRAM(非易失性隨機存儲器)技術,片內帶有一個4KB的FLASHFPROM(可擦除、可編程只讀存儲器),作為INTEL8051的換代產品,其輸出引腳和指令系統與MCS-51完全兼容。由于AT89C51單片機具有集成度高、面向控制、系統結構簡單、價格便宜等諸多優點,因而在智能化儀器儀表、數據采集、數據測量等方面有著廣泛的應用。4.1.3USB轉接芯片的選擇目前常用的USB轉接芯片包括PL2303,CH341,CP2101,FT232等。在綜合考慮了各方面因素后,CH341成為了本次電路設計的首選芯片。CH341是南京沁恒電子公司生產的USB總線的轉接芯片,通過USB總線提供異步串口,打印口,并口及常用的2線和4線等同步串行端口。其特點有:(1)提供全速USB設備借口,兼容USB2.0,外圍設備只需要晶體和電容;(2)可通過外部的低成本串行EPROM定義廠商ID,產品ID,序列號等;(3)成本低廉,可直接轉換原串口外圍設備;(4)采用SOP-28封裝,串口應用還提供小型的SSOP-20封裝。正是由于在PC機同單片機通信電路中,USB轉接芯片CH341具有以上其他芯片無法比擬的優點,同時價格低廉并且提供中文技術支持,因此它成為了本電路USB轉接芯片的最優選擇。本電路采用的是SSOP-20封裝的CH341T,其引腳圖如圖4-1所示。圖4-1CH341T引腳圖4.2單片機最小系統4.2.1單片機原理簡介單片機(single-chipmicrocomputer)是把微型計算機主要部分都集成在一塊芯片上的單芯片微型計算機[12]。圖3-1中表示單片機的典型結構圖。由于單片機的高度集成化,縮短了系統內的信號傳送距離,優化了結構配置,大大地提高了系統的可靠性及運行速度,同時它的指令系統又很適合于工業控制的要求,所以單片機在工業過程及設備控制中得到了廣泛的應用[13,14]。圖3-1典型單片機結構圖4.2.2單片機的應用系統單片機在進行實時控制和實時數據處理時,需要與外界交換信息。人們需要通過人機對話,了解系統的工作情況和進行控制。單片機芯片與其它CPU比較,功能雖然要強得多,但由于芯片結構、引腳數目的限制,片內ROM、RAM、I/O口等不能很多,在構成實際的應用系統時需要加以擴展,以適應不同的工作情況。單片機應用系統的構成基本上如圖3-2所示。圖3-2單片機的應用系統單片機應用系統根據系統擴展和系統配置的狀況,可以分為最小應用系統、最小功耗系統、典型應用系統。本設計是設計一款最小應用系統,最小應用系統是指能維持單片機運行的最簡單配置的系統。這種系統成本低廉、結構簡單,常用來構成簡單的控制系統,如開關量的輸入/輸出控制、時序控制等。對于片內有ROM/EPROM的芯片來說,最小應用系統即為配有晶體振蕩器、復位電路和電源的單個芯片;對與片內沒有ROM/EPROM芯片來說,其最小應用系統除了應配置上述的晶振、復位電路和電源外,還應配備EPROM或EEPROM作為程序存儲器使用[15,16]。4.2.3AT89C52簡介AT89C52的主要參數如表3-1所示:表3-1AT89C52的主要參數型號存儲器定時器I/0串行口中斷速度(MH)其它特點E2PROMROMRAM89C528K1282321624低電壓AT89C52含E2PROM電可編閃速存儲器。有兩級或三級程序存儲器保密系統,防止E2PROM中的程序被非法復制。不用紫外線擦除,提高了編程效率。程序存儲器E2PROM容量可達20K字節。AT89C52是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C52是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。其引腳如圖2-3所示[17,18]。圖3-3單片機的引腳排列1.主要特性:·與MCS-51兼容

·8K字節可編程閃爍存儲器

壽命:1000寫/擦循環·全靜態工作:0Hz-24Hz

·三級程序存儲器鎖定

·128*8位內部RAM

·32可編程I/O線

·兩個16位定時器/計數器

·5個中斷源

·可編程串行通道

·低功耗的閑置和掉電模式

·片內振蕩器和時鐘電路2、管腳說明:

VCC:供電電壓。

GND:接地。

P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。

P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。

P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。

P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。

P3口也可作為AT89C51的一些特殊功能口,如下所示:

P3口管腳備選功能

P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)

P3.2/INT0(外部中斷0)

P3.3/INT1(外部中斷1)

P3.4T0(記時器0外部輸入)

P3.5T1(記時器1外部輸入)

P3.6/WR(外部數據存儲器寫選通)

P3.7/RD(外部數據存儲器讀選通)

P3口同時為閃爍編程和編程校驗接收一些控制信號。

RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。

ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。

/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。

/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。存儲器結構:MCS-51單片機內核采用程序存儲器和數據存儲器空間分開的結構,均具64KB外部程序和數據的尋址空間。程序存儲器:如果EA引腳接地(GND),全部程序均執行外部存儲器。在AT89S51,假如EA接至Vcc(電源+),程序首先執行地址從0000H-0FFFH(4KB)內部程序存儲器,再執行地址為1000H-FFFFH(60KB)的外部程序存儲器。數據存儲器:AT89S51的具128字節的內部RAM,這128字節可利用直接或間接尋址方式訪問,堆棧操作可利用間接尋址方式進行,128字節均可設置為堆棧區空間。3、I/O口引腳:a:P0口,雙向8位三態I/O口,此口為地址總線(低8位)及數據總線分時復用;b:P1口,8位準雙向I/O口;c:P2口,8位準雙向I/O口,與地址總線(高8位)復用;d:P3口,8位準雙向I/O口,雙功能復用口。4、振蕩器特性:

AT89S52一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構成自激振蕩器。外接石英晶體(或陶瓷諧振器)及電容Cl、C2接在放大器的反饋回路構成并聯振蕩電路。對外接電容Cl、C2雖然沒十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩定性、起振的難易程序及溫度穩定性。如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10pF。用戶也可以采用外部時鐘。這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續時間和最大的低電平持續時間應符合產品技術條件的要求。XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。5、芯片擦除:整個EPROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被執行。此外,AT89C52設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。6、Flash閃速存儲器的并行編程AT89C52單片機內部8k字節的可快速編程的Flash存儲陣列。編程方法可通過傳統的EPROM編程器使用高電壓(+12V)和協調的控制信號進行編程。AT89C52的代碼是逐一字節進行編程的。編程方法:編程前,須設置好地址、數據及控制信號,AT89C51編程方法如下:1.在地址線上加上要編程單元的地址信號。2.在數據線上加上要寫入的數據字節。3.激活相應的控制信號。4.將EA/Vpp端加上+12V編程電壓。5.每對Flash存儲陣列寫入一個字節或每寫入一個程序加密位,加上一個ALE/PROG編程脈沖。每個字節寫入周期是自身定時的,大多數約為50us。改變編程單元的地址和寫入的數據,重復1-5步驟,直到全部文件編程結束。4.2.4單片機最小系統設計采用AT89C52單片機構成了控制系統的核心,其基本模塊就主要包括復位電路和晶體震蕩電路。在本設計當中,單片機的P0口、P1口、P2口、P3口全部參與系統工作,單片機最小系統的接線如圖3.4所示:圖3.4單片機最小系統圖4.3硬件設計4.3.1硬件電路設計CH341T提供全速USB設備接口,兼容USB2.0,外圍器件只需要電容和晶體,電路如附錄A所示。其中,電源電壓為5V,USB接口的差分數據線對與CH341T的UD-和UD+直接相連。CH341T提供TTL電平,同AT89C51直接采用簡單的3線連接(RXD—TXD;TXD—RXD;GND—GND)。在5V電源的情況下,V3口需要外接0.01uF的退耦電容。TEN#為串口發送數據使能端,低電平有效。CH341T必須使用12Mhz晶振,否則無法正常工作。為保證單片機能夠產生與計算機匹配的波特率,單片機采用11.0592Mhz的晶振。4.3.2硬件驅動程序安裝在網站/download/index.htm可下載CH341T驅動程序CH341SER.EXE,在確認驅動程序和硬件電路無誤后,打開驅動程序。彈出安裝對話框后選擇INSTALL,設備將自動安裝驅動程序。安裝完成后計算機將提示安裝成功。將硬件電路通過USB接口連接至計算機,計算機自動識別并彈出新硬件安裝對話框,選擇自動安裝,驅動程序即可成功安裝至計算機。在計算機設備管理器中,可顯示剛剛安裝成功的USB串口。如圖4-3所示。圖4-3安裝完成后的設備管理器4.4通信程序設計4.4.1PC機與USB通信程序設計圖4-4為計算機與USB通信處理流程圖。開始開始USB設置是否為TRUE?檢查設備是否配置調用I2cWriteRead();發送數據接收數據結束處理USBSetup包圖4-4計算機與USB通信處理流程圖部分關鍵代碼如下:voidmain(void){init_port(); /*初始化I/O口*/init_timer0(); /*設置定時器0*/init_special_interrupts(); /*設置中斷*///D12_DATA=0xfb02; /*定義數據地址*///D12_COMMAND=0xfb03; /*定義命令地址*/D12_DATA=0x7002; /*定義數據地址*/D12_COMMAND=0x7003; /*定義命令地址*/D12_SetDMA(0x0); /*不使用DMA功能*/bEPPflags.value=0; /*初始化USB寄存器*//*上電復位,USB總線重新連接指令*/reconnect_USB();while(TRUE){if(bEPPflags.bits.configuration){I2cWriteRead();/*如果設備已配置,調用I2cWriteRead()*/ }outportb(port,a);/*發送數據usbserve();/*處理USB的setup包*/for(j=0;j<9;j++)/*接收數據*/{while(!(inportb(port+5)&1));ch[j]=inportb(port);}for(j=0;j<9;j++)printf("n%d\n",ch[j]);getch();break;}4.4.2單片機通信程序設計為實現單片機同PC機的簡單通信功能,需要通過匯編指令使單片機完成一定的工作來驗證USB接口通信的暢通。若要使單片機串口能夠同PC機正常通信,單片機和USB接口需要使用相同的通信協議,在設備管理器中,可設置串口破特率為9600。而在單片機中,通過軟件設置串口波特率為9600,工作方式為方式一,每接收一個8位數據,將數據保存并回送至計算機,以此來實現對USB通信暢通與否的測試。程序流程圖如圖4-6所示。開始開始設定定時器和USB工作方式開中斷等待中斷中斷產生接收數據關中斷回送數據開發送中斷等待數據接收完成返回初始狀態圖4-6單片機的程序流程圖根據程序流程圖,單片機的指令代碼如下:ORGDDOOHSTART:MOVTMOD,#20H;定時器T1為方式2MOVTL1,#DFDH;波特率為9600SETBTR1MOVSCON,#50H;串口工作方式1,REN=1SETBESSETBEA;開中斷SJMP$;等待中斷ORG0023H;中斷入口地址JNBBI,SBR;RI為1時跳至發送,為0時說明發送已完成AJMPSTART;返回初始狀態,等待下一次數據接收,實現數據的循環接收SBR:AJMPSBR1ORG0100HSBR1:CLRRIMOVA,ABUF;接收數據MOVB1,AMOVSBUF,A;數據回送JNBT1,$CLRT14.5USB通信模塊調試USB通信模塊的調試使用串口調試工具(ComTools),該工具是一款功能強大的串口調試免費軟件。其主要功能如下:(1)支持COM1—COM8串口的數據發送和接收,可重復發送和接收數據;(2)支持HEX格式數據和ASC格式數據的串口發送和接收;(3)可自定義數據格式,校驗位,可自定義數據傳輸速率;(4)可自動記錄發送和接收的數據并保存。使用串口調試工具可以方便的通過計算機向USB串口通信模塊發送數據并記錄所接收的數據。因此,本次USB通信模塊的調試使用該串口調試工具完成PC機同單片機的通信。打開串口調試工具。首先選擇串口設置,設置串口為設備管理器中對應的串口(COM1),設置波特率為9600

溫馨提示

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

評論

0/150

提交評論