【正文】
1 OK munication, and munication and PC. The system using traditional USB replace the RS232 serial bus, Through the USB framework agreement and equipment with the full understanding, right to 89 C51 microcontroller and USB interface chip PDIUSBD12based data acquisition system for the hardware pieces of software design and programming, and in this design is given on the basis of the corresponding diagram. The main solution of Hardware design is the Connection between PDIUSBD12 and ADC0809 with the interface between the microcontroller circuit,The software programme mainly includes: the fireware code in need of D1239。硬件設(shè)計(jì)主要解決的是 PDIUSBD12 和 ADC0809 與單片機(jī)之間的接口電路問題,軟件編程大致分為三部分:一是為滿足 D12 在 USB 上的最大傳輸速率而編寫的固件程序。XX 大學(xué)畢業(yè)設(shè)計(jì)(論文) I畢業(yè)設(shè)計(jì)論文基于單片機(jī)和 USB 接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)基于單片機(jī)和 USB 接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì) II 摘 要通用串行總線 USB(Universal Serial Bus)是一種新型的微機(jī)總線接口規(guī)范。該系統(tǒng)用傳統(tǒng)的 USB 總線取代了 RS232 串行總線,通過對 USB 協(xié)議和設(shè)備構(gòu)架的充分理解,對以單片機(jī) 89C51 和 USB 接口芯片 PDIUSBD12 為主的數(shù)據(jù)采集系統(tǒng)進(jìn)行了硬件設(shè)計(jì)和軟件編程,并在此設(shè)計(jì)的基礎(chǔ)上給出相應(yīng)的原理圖。關(guān)鍵詞:單片機(jī);USB;數(shù)據(jù)采集;固件Design of Data Acquisition System Based on Single Chip Computer XX 大學(xué)畢業(yè)設(shè)計(jì)(論文) IIIand USB InterfaceAbstractUniversal Serial Bus is a new specification for microputer bus interface. With the continuing advance of the clients39。USB。然而外界的大部分信息是以連續(xù)變化的物理量形式出現(xiàn)的,例如溫度,壓力,速度等。USB 是一種 IT 行業(yè)新發(fā)展起來的通用接口標(biāo)準(zhǔn),目前很多應(yīng)用主要集中在 PC 機(jī)的外設(shè)和一些消費(fèi)類電子上。系統(tǒng)以 AT89C51 單片機(jī)為核心,集成電路全部采用 CMOS 器件。這種單片機(jī)控制的數(shù)據(jù)采集系統(tǒng)克服了精度低、滯差大、走時(shí)短等缺點(diǎn),并且功耗低、性能可靠,可以長時(shí)間連續(xù)工作,有著非常廣的應(yīng)用空間。信息技術(shù)與電子技術(shù)的迅猛發(fā)展,使得計(jì)算機(jī)和外圍設(shè)備也得到飛速發(fā)展和應(yīng)用。驅(qū)動程序以WDM為模型,以DDK為開發(fā)工具,以IRP為消息傳播載體,來實(shí)現(xiàn)與Windows系統(tǒng)底層核心機(jī)制相交互的功能 課題的研究意義與現(xiàn)狀盡管RS232是一種十分成熟且應(yīng)用廣泛的通訊方式,但是隨著控制系統(tǒng)的日益復(fù)雜,所要采集的量也會越來越多。采用PDIUSBD12芯片和89C51單片機(jī)設(shè)計(jì)的基于USB 總線的數(shù)據(jù)采集系統(tǒng),具有可靠性高、數(shù)據(jù)不丟失、抗干擾性強(qiáng)、便于數(shù)據(jù)傳輸和處理等優(yōu)點(diǎn),可在信號測試、信號采集場合廣泛使用?,F(xiàn)在生產(chǎn)的 PC機(jī)幾乎都配備了,USB 接口,Microsoft的windows98, NT以及MacOS, Linux, FreeBSD等流行操作系統(tǒng)都增加了對USB 的支持。新推出的。USB使用的是一種易于擴(kuò)展的樹狀結(jié)構(gòu),通過使用USB Hub擴(kuò)展可連接多達(dá)127個(gè)外設(shè)。 USB共有4種傳輸模式:控制傳輸(control),同步傳輸(synchronization)、中斷傳輸 (interrupt)、批量傳輸(bulk),適應(yīng)不同設(shè)備的需要。 USB對系統(tǒng)與PC 的集成進(jìn)行了優(yōu)化,適合于開發(fā)低成本的外設(shè)。硬件設(shè)計(jì)主要解決的是 D12 與單片機(jī)的接口電路的設(shè)計(jì)。每個(gè)邏輯設(shè)備有一個(gè)唯一的地址,這個(gè)地址是在設(shè)備連上主機(jī)時(shí)由主機(jī)分配的,而設(shè)備中的每個(gè)端點(diǎn)在設(shè)備內(nèi)部有唯一的端點(diǎn)號。所有 USB 設(shè)備都需要實(shí)現(xiàn)一個(gè)缺省的控制方法。除缺省控制通道的缺省端點(diǎn)外,其他端點(diǎn)只有在設(shè)備被設(shè)置后才可使用。USB 不解釋在通道中傳送的數(shù)據(jù)的內(nèi)容。如圖 所示,PID 由 4 位的包類型字段和其后的 4 位的校驗(yàn)字段構(gòu)成。如果 4 個(gè) PID 檢驗(yàn)位不是它們的各自的包標(biāo)識符位的補(bǔ),則說明存在PID 錯(cuò)。每一個(gè)控制傳輸都必須有設(shè)置與狀態(tài)階段,數(shù)據(jù)階段則是選擇性的。如果數(shù)據(jù)的數(shù)量超過了先前確定的數(shù)據(jù)包的大小,數(shù)據(jù)在支持最大的包大小的多個(gè)事務(wù)中被發(fā)送(輸入或輸出) 。批量傳輸?shù)膫鬏斀Y(jié)構(gòu)如圖 所示:空閑I NA C KD A T A 0 /D A T A 1D A T A 0 /D A T A 1O U T空閑N A K S T A L L標(biāo)記數(shù)據(jù)空閑A C KN A K S T A L L握手?jǐn)?shù)據(jù)出錯(cuò)數(shù)據(jù)出錯(cuò)主機(jī) 功能部件圖 批量傳輸結(jié)構(gòu)示意圖中斷傳輸中斷傳輸適用于小批量的、點(diǎn)式、非連續(xù)的數(shù)據(jù)傳輸應(yīng)用的場合。同步傳輸?shù)膫鬏斀Y(jié)構(gòu)如圖 所示:I N O U TD A T A 0 / D A T A 0標(biāo)記數(shù)據(jù)空閑空閑圖 同步傳輸結(jié)構(gòu)示意圖 USB 總線枚舉過程USB 規(guī)范定義的設(shè)備狀態(tài)總共有 6 個(gè),分別是連接(Attached) 、上電(Powered) 、默認(rèn)(Default ) 、地址(Address) 、配置(Configured)和掛起(Suspend) 。之后,主機(jī)會通過此通道向設(shè)備發(fā)送一系列的標(biāo)準(zhǔn) USB 請求以獲取所需的信息,設(shè)備必須響應(yīng)這些請求并且采取適當(dāng)?shù)膭幼?。?主機(jī)檢測到設(shè)備,進(jìn)行復(fù)位設(shè)備連接到總線后,主機(jī)通過檢測設(shè)備在差分信號線的上拉電阻檢測到有新的設(shè)備連接,并獲釋該設(shè)備是全速設(shè)備還是低速設(shè)備,如果上拉電阻與 D+線相連,則為全速設(shè)備,如果上拉電阻與 D-線相連,則為低速設(shè)備,主機(jī)確認(rèn)有設(shè)備連接后,向該端口發(fā)送一個(gè)復(fù)位信號。⑦ 設(shè)備配置主機(jī)依照讀取的 USB 設(shè)備描述符來進(jìn)行配置,如果設(shè)備所需的 USB 資源得以滿足,主機(jī)就會查找驅(qū)動,當(dāng)正確找到驅(qū)動后,主機(jī)給設(shè)備發(fā)送配置命令,配置完畢后,這個(gè) USB 設(shè)備就枚舉成功了。不同的描述符從不同的層級來表示設(shè)備的屬性。各個(gè)描述符的樹狀結(jié)構(gòu)如圖 所示:設(shè)備描述符配置描述符 配置描述符 配置描述符接口描述符 接口描述符端點(diǎn)描述符接口描述符端點(diǎn)描述符端點(diǎn)描述符端點(diǎn)描述符端點(diǎn)描述符端點(diǎn)描述符圖 描述符的樹狀結(jié)構(gòu)設(shè)備描述符描述了一個(gè) USB 設(shè)備的總體信息,它在枚舉過程中主機(jī)從設(shè)備讀取的第一個(gè)描述符。當(dāng)主機(jī)請求獲取一個(gè)配置描述符的時(shí)候,與配置描述符相關(guān)的所有接口、端點(diǎn)描述符都會一并返回。接口描述符由 9個(gè)字節(jié)組成,分為 9 個(gè)字段。端點(diǎn)描述符由 7 個(gè)字節(jié)組成,分為 6 個(gè)字段。但是只有類請求是不能滿足眾多 USB 廠商的需求的,所以,USB 協(xié)議允許一個(gè)供應(yīng)商為它的設(shè)備自定義特殊的請求,此類請求稱為廠商請求。bRequest 表示 USB 設(shè)備請求值,標(biāo)準(zhǔn)請求有 11 個(gè)命令。本章為本設(shè)計(jì)下面內(nèi)容的展開奠定了基礎(chǔ)。一旦存滿,串行接口引擎 SIE 立刻對數(shù)據(jù)進(jìn)行處理,包括同步模式識別、并/串轉(zhuǎn)換、位填充/不填充、CRC 校驗(yàn)、PID 確認(rèn)、地址識別以及握手鑒定,處理完畢后數(shù)據(jù)由模擬收/發(fā)器通過 D+、D 發(fā)送至 PC。A,B和C為地址輸入線,用于選通 IN0-IN7上的一路模擬量輸入。EOC為轉(zhuǎn)換結(jié)束信號。D7-D0為數(shù)字量輸出線。在時(shí)鐘脈沖頻率為640kHz時(shí),START脈寬應(yīng)大于100ns200ns 。OE 端控制輸出鎖存器的三態(tài)門。 (3)送通道的地址到A、B、C端口上。 AT89C51AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器( FPEROM Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。它還支持本地的DMA傳輸。同樣地,PDIUSBD12理想地適用于許多外設(shè),例如:打印機(jī)、掃描儀、外部的存儲設(shè)備、Zip驅(qū)動器和數(shù)碼相機(jī)等等,它使得當(dāng)前使用SCSI 的系統(tǒng)可以立即降低成本。集合所有這些特性都為系統(tǒng)顯著節(jié)約了成本,同時(shí)使USB功能在外設(shè)上的應(yīng)用變得容易。該電壓還作為輸出連接到外部 的上拉電阻。位時(shí)鐘恢復(fù):位時(shí)鐘恢復(fù)電路使用 4X 過采樣規(guī)則,從進(jìn)入的 USB 數(shù)據(jù)流中恢復(fù)時(shí)鐘,能跟蹤 USB 規(guī)定范圍內(nèi)的抖動和頻漂。 上拉電阻集成在 PDIUSBD12 片內(nèi),默認(rèn)狀態(tài)下不與 VCC 相連,其連接的建立是通過外部/系統(tǒng)微控制器發(fā)送命令來實(shí)現(xiàn)的。SoftConnect TM 是 PHILIPS 半導(dǎo)體一項(xiàng)尚未獲批準(zhǔn)的專利技術(shù)。隨后與 PDIUSBD12 之間成功的傳輸(帶應(yīng)答)將關(guān)閉 LED。該特性降低了現(xiàn)場支持和熱線的成本。對一個(gè)微控制器而言,PDIUSBD12 看起來就像一個(gè)帶8位數(shù)據(jù)總線和一個(gè)地址(占用2個(gè)位置)的存儲器件,PDIUSBD12 支持多路復(fù)用和非復(fù)用的地址和數(shù)據(jù)總線;支持主端點(diǎn)與本地共享 RAM 之間直接讀取的 DMA 傳輸;還支持單周期和突發(fā)模式的 DMA 傳輸。典型的,對DMA 控制器的傳輸模式,字節(jié)計(jì)數(shù)寄存器和地址計(jì)數(shù)器進(jìn)行正確的編程。在單周期 DMA 中,DMREQ 在每單個(gè)應(yīng)答后直到被 DMACK_N 重新激活之前保持無效。x25045 引腳如圖 所示。表 x25045 指令及其含義指令名 指令格式 操作WREN 00000110 設(shè)置寫使能鎖存器(允許寫操作)WRDI 00000100 復(fù)位寫使能鎖存器(禁止寫操作)RDSR 00000101 讀狀態(tài)寄存器WRSR 00000001 寫狀態(tài)寄存器READ 0000A8011 把開始于所選地址的存儲器中的數(shù)據(jù)讀出WRITE 0000A8010 把數(shù)據(jù)寫入開始于所選地址的存儲器 單片機(jī)最小系統(tǒng) 單片機(jī)的時(shí)鐘電路時(shí)鐘電路 [6]用于產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號,單片機(jī)本身就如同一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作電路應(yīng)在唯一的時(shí)鐘信號控制下嚴(yán)格的按規(guī)定時(shí)序工作。當(dāng)使用晶體諧振器時(shí) CC2=(30 10)pF,當(dāng)使用陶瓷諧振器時(shí) CC2=(40?10) pF。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫困境也需要按復(fù)位鍵以重新啟動。在復(fù)位有效期間內(nèi) ALE﹑PSEN 將輸出高電平。 若運(yùn)行過程中需要程序從頭開始執(zhí)行這只需按圖 34 中的按鈕即可。通過 MCS51 單片機(jī)的復(fù)位引腳 RST 引腳加上持續(xù)兩個(gè)機(jī)器周期(即 24 個(gè)振蕩周期)的高電平即可使器件復(fù)位,只要 RST 一直保持高電平那么 CPU 就一直處于復(fù)位狀態(tài)。VC CVC CR S TR 1 1 K2 2 181。2 2 0 V ~2 2 0 V ~9 VT 11234D 1 ~ D 4I N 4 0 0 7 * 4R 13 . 9 K ?L E D 1+C 11 0 0 0 181。 F1 6 V++ 5 VC 51 0 181。本文用 x25045 芯片設(shè)計(jì)了一種新的看門狗電路,具有體積小、占用 i/o 口線少和編程方便的特點(diǎn),可廣泛應(yīng)用于儀器儀表和各種工控系統(tǒng)中。圖 電路中,cpu 的復(fù)位信號共有 3 個(gè):上電復(fù)位(cr2),人工復(fù)位(s、rr2)和 watchdog 復(fù)位(cr3),通過或門綜合后加到 reset 端。 FR 21 0 K ?R 31 0 K ?圖 2 x25045 看門狗電路硬件連接圖看門狗定時(shí)器的預(yù)置時(shí)間是通過 x25045 的狀態(tài)寄存器的相應(yīng)位來設(shè)定的。wd1=1,wd0=0,預(yù)置時(shí)間為 。當(dāng)系統(tǒng)跑飛,用軟件陷阱等別的方法無法捕捉回程序時(shí),則看門狗定時(shí)時(shí)間很快增長到預(yù)置時(shí)間,迫使系統(tǒng)復(fù)位。INT_N 是 USB 中斷請求腳,發(fā)出 USB 中斷請求;GL_N 是 GooDLink 指示燈,在調(diào)試過程中非常有用,在通信時(shí)會不停閃爍。編程時(shí)注意啟動AD0809后,EOC在一定時(shí)間才能變成低電平。此外89C51的多位地址/數(shù)據(jù)復(fù)用總線PO 可直接與PDIUSBD12的數(shù)據(jù)總線相連,CLKOUT時(shí)鐘輸出為89C51提供時(shí)鐘輸入。第 4 章 數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì) A/D 轉(zhuǎn)換時(shí)序控制 采用延時(shí)等待 A/D 轉(zhuǎn)換結(jié)束方式,分別對 8 路模擬信號輪流采樣一次,并依次把結(jié)果存入存儲器。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.O