麻花豆传媒剧国,亚洲国产精品无码,欧州黄片视频免费观看,外国性生活一区二区

問(wèn)答

用串口轉(zhuǎn)usb接口的模塊可以實(shí)現(xiàn)上位機(jī)與plc和單片機(jī)之間的通訊么

提問(wèn)者:baidu6462013-05-21 00:00

上位機(jī)用的是USB 口 單片機(jī)是rs232 一開(kāi)始只能接受到數(shù)據(jù) 但不能發(fā)送 是什么問(wèn)題

最佳答案

數(shù)據(jù)接收存儲(chǔ)技術(shù)革新是信號(hào)采集處理領(lǐng)域內(nèi)的一個(gè)重要課題。利用這種技術(shù),可以把信號(hào)的實(shí)時(shí)采集和精確處理在時(shí)間上分為兩個(gè)階段,有利于獲得令人更滿(mǎn)意的處理結(jié)果。在無(wú)線數(shù)傳接收設(shè)備中應(yīng)用數(shù)據(jù)接收存儲(chǔ)方法時(shí),除了要滿(mǎn)足數(shù)據(jù)傳輸速率和差錯(cuò)控制方面的要求外,還需要考慮如何使設(shè)備易于攜帶、接口簡(jiǎn)單、使用方便。 傳統(tǒng)外設(shè)接口技術(shù)不但數(shù)據(jù)傳輸速率較低,獨(dú)占中斷、I/O地址、DMA通道等計(jì)算機(jī)系統(tǒng)關(guān)鍵資源,容易造成資源沖突問(wèn)題,而且使用時(shí)繁雜的安裝配置手續(xù)也給終端用戶(hù)帶來(lái)了諸多不便。近年來(lái),USB接口技術(shù)迅速發(fā)展,新型計(jì)算機(jī)紛紛對(duì)其提供支持。USB2.0是USB技術(shù)發(fā)展的最新成果,利用USB2.0接口技術(shù)開(kāi)發(fā)計(jì)算機(jī)外設(shè),不但可以借用其差錯(cuò)控制機(jī)制[1][6]減輕開(kāi)發(fā)人員的負(fù)擔(dān)、獲得高速數(shù)據(jù)傳輸能力(480Mb/s),而且可以實(shí)現(xiàn)便捷的機(jī)箱外即插即用特性,方便終端用戶(hù)的使用。 1 無(wú)線數(shù)傳接設(shè)備總體構(gòu)成 無(wú)線數(shù)傳接收設(shè)備是某靶場(chǎng)測(cè)量系統(tǒng)的一個(gè)重要組成部分。如圖1所示,該設(shè)備由遙測(cè)接收機(jī)利用天線接收經(jīng)過(guò)調(diào)制的無(wú)線電波信號(hào),解調(diào)后形成傳輸速率為4Mb/s的RS-422電平差分串行數(shù)據(jù)流。以幀同步字打頭的有效數(shù)據(jù)幀周期性地出現(xiàn)在這些串行數(shù)據(jù)中。數(shù)據(jù)轉(zhuǎn)存系統(tǒng)從中提取出有效的數(shù)據(jù)幀,并在幀同步字后插入利用GPS接收機(jī)生成的本地時(shí)間信息,用于記錄該幀數(shù)據(jù)被接收到的時(shí)間,然后送給主機(jī)硬件保存。 在無(wú)線數(shù)傳接收設(shè)備中,數(shù)據(jù)轉(zhuǎn)存系統(tǒng)是實(shí)現(xiàn)數(shù)據(jù)接收存儲(chǔ)的關(guān)鍵子系統(tǒng)。下面將詳細(xì)介紹該系統(tǒng)的硬件實(shí)現(xiàn)及工作過(guò)程。 2 數(shù)據(jù)轉(zhuǎn)存系統(tǒng)基本構(gòu)成及硬件實(shí)現(xiàn) 數(shù)據(jù)轉(zhuǎn)存系統(tǒng)主要由FPGA模塊、DSP模塊、USB2.0接口芯片構(gòu)成,各個(gè)模塊之間的相互關(guān)系如圖2所示示。圖中,4Mb/s的串行數(shù)據(jù)輸入信號(hào)SDI已由RS-422差分電平轉(zhuǎn)換為CMOS電平。為突出重點(diǎn),不太重要的信號(hào)連線未在圖中繪出。下面分別介紹這幾個(gè)模塊的主要功能。 2.1 FPGA模塊實(shí)現(xiàn)及春功能 FPGA模塊在Altera公司ACEX系列的EP1K30TI144-2芯片中實(shí)現(xiàn)。其中主要的功能子模塊有:位同步邏輯、幀同步邏輯、授時(shí)時(shí)鐘和譯碼邏輯。位同步邏輯主要由數(shù)字鎖相環(huán)構(gòu)成,用于從串行數(shù)據(jù)輸入信號(hào)SDI中恢復(fù)出位時(shí)鐘信號(hào)。幀同步邏輯從位同步邏輯的輸出信號(hào)提取幀同步脈沖。兩者為DSP利用其同步串行口接收串行數(shù)據(jù)作好準(zhǔn)備。這樣,利用一對(duì)差分信號(hào)線就可以接收同步串行數(shù)據(jù),簡(jiǎn)化了印制電路板的外部接口。授時(shí)時(shí)鐘在DSP和GSP接收機(jī)的協(xié)助下生成精度為0.1ms的授時(shí)信息。譯碼邏輯用于實(shí)現(xiàn)系統(tǒng)互聯(lián)。 2.2 DSP模塊實(shí)現(xiàn)及其功能 DSP模塊是數(shù)據(jù)轉(zhuǎn)存系統(tǒng)的主控模塊,在T1公司16位定點(diǎn)DSP芯片TMS320F206[4]中實(shí)現(xiàn)。在DSP的外部數(shù)據(jù)空間還配置了32KX16的高速SRAM,可以緩存80余幀數(shù)據(jù),用于提高系統(tǒng)的差錯(cuò)控制能力。DSP利用同步串行口接收FPGA送來(lái)的同步串行數(shù)據(jù),利用異步串口接收GPS接收機(jī)送來(lái)時(shí)間信息(用于初始化FPGA授時(shí)時(shí)鐘),利用外部總線接口訪問(wèn)FPGA授時(shí)時(shí)鐘、外部SRAM、ISP1581的片內(nèi)寄存器。可以看出DSP模塊主要用于完成數(shù)據(jù)幀的接收、重組以及轉(zhuǎn)存調(diào)度等任務(wù)。 ISP1581芯片是PHILIPS公司推出的高速USB2.0設(shè)備控制器,實(shí)現(xiàn)了USB2.0/1.1物理層、協(xié)議層,完全符合USB2.0規(guī)范,即支持高速(480Mb/s)操作,又支持全速(12Mb/s)操作。ISP1581沒(méi)有內(nèi)嵌微處理器,但對(duì)微處理器操作了靈活的接口。在上電時(shí),通過(guò)配置BUS——CONF、DAO、MODE1、MODE0、DA1引腳電平可以適應(yīng)絕大多數(shù)的微處理器接口類(lèi)型。例如,通過(guò)BUS_CONF/DA0引腳,總線配置可以選擇普通處理器模塊(Generic Phocessor mode)中分割總線模式(Split Bus Mode);在普通處理器模式下,通過(guò)MODE0/DA1引腳可以選擇讀寫(xiě)選通為8051風(fēng)格或者M(jìn)otorola風(fēng)格。 在數(shù)據(jù)轉(zhuǎn)存系統(tǒng)中,ISP1581用于處理主機(jī)的高速數(shù)據(jù)傳輸。它工作在普通處理器接口模式下,采用8051風(fēng)格的讀寫(xiě)選通信號(hào),由DSP芯片TMS320F206控制。兩者在選定工作方式下的信號(hào)連線如圖3所示,圖中未畫(huà)出的信號(hào)引腳可以懸空,供電引腳的連接方式在參考資料[2]第46頁(yè)有簡(jiǎn)明描述。在FPGA譯碼邏輯的作用下,ISP1581的片內(nèi)寄存器被映射在DSP的片外數(shù)據(jù)空間中。DSP通過(guò)8位地址線選擇要訪問(wèn)的寄存器,在讀寫(xiě)選通信號(hào)的控制下,利用16位數(shù)據(jù)線與選定的寄存器交換數(shù)據(jù)。在訪問(wèn)ISP1581單字節(jié)寄存器時(shí),數(shù)據(jù)總線高字節(jié)內(nèi)容無(wú)關(guān)緊要。ISP1581通過(guò)中斷引腳INT向DSP報(bào)告發(fā)生的總線事件,利用D+、D-引腳完成與主機(jī)的數(shù)據(jù)交換。 3 數(shù)據(jù)轉(zhuǎn)存系統(tǒng)的工作過(guò)程 系統(tǒng)加電后,當(dāng)FPGA配置過(guò)程結(jié)束時(shí),如果有串行數(shù)據(jù)輸入,位同步邏輯和幀同步邏輯便啟動(dòng)同步過(guò)程。同時(shí),DSP片內(nèi)FLASH中復(fù)位中斷服務(wù)程序c_int0()[4]被立即執(zhí)行,在建立好C語(yǔ)言的工作環(huán)境下,它會(huì)調(diào)用主函數(shù)main()。在main()中,需要安排好一系列有先后順序的初始化工作。其中,ISP1581的初始化過(guò)程比較復(fù)雜,需要考慮設(shè)備采用的供電方式(這里為自供電[6]方式)、插接主機(jī)和系統(tǒng)上電的先后次序,并需要與USB總線枚舉[1][6]過(guò)程相結(jié)合。 在FPGA中的位同步邏輯和幀同步邏輯均進(jìn)入同步狀態(tài),且DSP主控模塊配合主機(jī)完成初始化任務(wù)后,即可啟動(dòng)數(shù)據(jù)的傳輸過(guò)程。下面介紹一下ISP1581的初始化過(guò)程及DSP控制的數(shù)據(jù)幀的接收機(jī)轉(zhuǎn)存流程。 3.1 ISP1581的初始化 在初始化過(guò)程中,首先需要設(shè)置影響ISP1581自身工作方式的一些寄存器,然后與主機(jī)端USB系統(tǒng)配合進(jìn)行,應(yīng)答來(lái)自主機(jī)端的設(shè)備請(qǐng)求。當(dāng)數(shù)據(jù)轉(zhuǎn)存系統(tǒng)板作為USB 2.0設(shè)備通過(guò)連接器連到主機(jī)USB根集線器上的一個(gè)端口時(shí),主機(jī)便可檢測(cè)到這一連接,接著給該端口加電,檢測(cè)設(shè)備并激活該端口,向USB設(shè)備發(fā)送復(fù)位信號(hào)。設(shè)備收到這一復(fù)位信號(hào)后,即進(jìn)入缺省狀態(tài),此后就能夠通過(guò)缺省通信通道響應(yīng)主機(jī)端送來(lái)的設(shè)備請(qǐng)求。主機(jī)通過(guò)描述符請(qǐng)求(GET_DESCRIPTOR)獲得設(shè)備端的詳細(xì)信息,通過(guò)設(shè)置地址請(qǐng)求(SET_ADDRESS)設(shè)置設(shè)備地址,通過(guò)設(shè)置配置請(qǐng)求(SET_CONFIGURATION)選定合適的設(shè)備配置。在設(shè)備成功響應(yīng)了這些設(shè)備請(qǐng)求之后,就可以與主機(jī)通信了。 在響應(yīng)主機(jī)請(qǐng)求的過(guò)程中,DSP需要配置ISP1581的端點(diǎn)以實(shí)現(xiàn)不同類(lèi)型的傳輸通道。根據(jù)數(shù)據(jù)傳輸速率的要求,除了缺省的控制通道外,系統(tǒng)中實(shí)現(xiàn)了一個(gè)批傳輸(bulk)[1]類(lèi)型的輸入通道。這樣,ISP1581就可以像FIFO一樣方便地從數(shù)據(jù)轉(zhuǎn)存系統(tǒng)向主機(jī)傳輸數(shù)據(jù),而且具有差錯(cuò)控制能力,簡(jiǎn)化了設(shè)備端軟件設(shè)計(jì)的復(fù)雜性。 3.2 數(shù)據(jù)幀的接收轉(zhuǎn)存過(guò)程 系統(tǒng)正常工作時(shí),需要與主機(jī)端程序相互配合。主要端需要開(kāi)發(fā)者實(shí)現(xiàn)的程序包括設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序。在Windows 2000操作系統(tǒng)下,USB設(shè)備驅(qū)動(dòng)程序?yàn)閃DM模型的驅(qū)動(dòng)程序,開(kāi)發(fā)環(huán)境DriverStudio為WDM型驅(qū)動(dòng)程序提供了框架結(jié)構(gòu),使得驅(qū)動(dòng)開(kāi)發(fā)變得非常容易(參見(jiàn)參考文獻(xiàn)[5]第八、九、十章)。驅(qū)動(dòng)程序接收應(yīng)用程序的請(qǐng)求,利用USB總線驅(qū)動(dòng)程序(US-BD)和主機(jī)控制器驅(qū)動(dòng)程序(HCD)通過(guò)主機(jī)控制器安排USB總線事務(wù),設(shè)備端則根據(jù)這些事務(wù)調(diào)度相應(yīng)的數(shù)據(jù)幀的傳輸。關(guān)于主機(jī)端口如何安排總線事務(wù)可以查閱參考文獻(xiàn)[1]。以下著重介紹設(shè)備端數(shù)據(jù)的調(diào)度過(guò)程。 數(shù)據(jù)幀的接收轉(zhuǎn)存過(guò)程主要由DSP負(fù)責(zé),DSP在外部SRAM中建立了一個(gè)數(shù)據(jù)幀的隊(duì)列,如圖4所示。系統(tǒng)主要工作在中斷驅(qū)動(dòng)模式下,與同步串行口相關(guān)的中斷服務(wù)程序負(fù)責(zé)建立隊(duì)列的尾部,對(duì)應(yīng)于ISP1581中斷引腳INT的中斷服務(wù)程序負(fù)責(zé)建立隊(duì)列的頭部。 當(dāng)以幀同步字打頭的一幀數(shù)據(jù)以串行位流的形式到來(lái)時(shí),F(xiàn)PGA產(chǎn)生的幀同步脈沖可以直接啟動(dòng)DSP同步串行口接收數(shù)據(jù),該同步脈沖同時(shí)以中斷方式通知DSP為一幀數(shù)據(jù)的接收做好準(zhǔn)備。DSP接到通知后,首先檢查外部SRAM中是否有足夠的空間容納一幀數(shù)據(jù)。如果沒(méi)有空間,則丟棄當(dāng)前數(shù)據(jù)幀(根據(jù)設(shè)計(jì),這種情況是很少見(jiàn)的);如果有空間,則為當(dāng)前數(shù)據(jù)幀保留足夠的空間。接著在幀起始位置填寫(xiě)幀步字,讀取授時(shí)時(shí)鐘的當(dāng)前值并填寫(xiě)在幀同步字后。這樣,一個(gè)新的數(shù)據(jù)幀(圖4中數(shù)據(jù)幀F(xiàn)_N)就建立了,但是并沒(méi)有加入到隊(duì)列中,而是要等待來(lái)自同步串行口的后繼數(shù)據(jù)嵌入該幀中后再加入到隊(duì)列中。 同步串行口的接收緩沖區(qū)在接收到若干字(由初始化時(shí)的設(shè)置決定)后,會(huì)向DSP提出中斷請(qǐng)求。在中斷服務(wù)程序中,DSP讀取接收緩沖區(qū)中的內(nèi)容,并將其填入上述新開(kāi)辟的幀F(xiàn)_N中。在一幀數(shù)據(jù)接收完畢后,就將該幀添加到隊(duì)列的尾部,表示該幀數(shù)據(jù)已經(jīng)準(zhǔn)備好(圖4中數(shù)據(jù)幀F(xiàn)_R),可以通過(guò)ISP1581送給主機(jī)硬件保存。 DSP在查詢(xún)到隊(duì)列中有已經(jīng)準(zhǔn)備好的數(shù)據(jù)幀存在時(shí),就設(shè)置ISP1581的端點(diǎn)索引寄存器(Endpoint Index Register)使其指向初始化時(shí)配置的批傳輸輸入端點(diǎn),然后將隊(duì)列首幀數(shù)據(jù)通過(guò)ISP1581的數(shù)據(jù)端口寄存器(Data Port Register)填寫(xiě)在端點(diǎn)緩沖區(qū)中。在端點(diǎn)緩沖區(qū)被填滿(mǎn)后,它就自動(dòng)生效。在不能填滿(mǎn)端點(diǎn)緩沖區(qū)的情況下,可以通過(guò)設(shè)置控制功能寄存器(Control Function Register)的VENDP位[2]強(qiáng)制該端點(diǎn)緩沖區(qū)生效。端點(diǎn)緩沖區(qū)生效后,在USB總線上下一IN令牌到來(lái)時(shí),該端點(diǎn)緩沖區(qū)中的數(shù)據(jù)就通過(guò)USB總線傳輸?shù)街鳈C(jī)中。主機(jī)成功接收到數(shù)據(jù)后,會(huì)給ISP1581以ACK應(yīng)答。能夠通過(guò)INT引腳報(bào)告給DSP,DSP就可以繼續(xù)往端點(diǎn)中填寫(xiě)該幀其余數(shù)據(jù)。 在隊(duì)列首幀數(shù)據(jù)被成功轉(zhuǎn)移到主機(jī)后,DSP就丟棄首幀數(shù)據(jù)。如果隊(duì)列在還有數(shù)據(jù)幀,則將次首幀作為首幀,繼續(xù)前述傳輸過(guò)程;如果沒(méi)有要傳輸?shù)臄?shù)據(jù)幀,則為隊(duì)列首幀指針Head_Ptr賦空值(NULL),等待新的數(shù)據(jù)幀的到來(lái)。 USB2.0是計(jì)算機(jī)外設(shè)接口技術(shù)發(fā)展的最新成功,具有廣闊的應(yīng)用前景。本文介紹了PHILIPS公司USB2.0接口芯片ISP1581在無(wú)線數(shù)據(jù)接收設(shè)備中的應(yīng)用。高性能、便攜化的無(wú)線數(shù)據(jù)傳接收設(shè)備。其在靶場(chǎng)實(shí)彈試驗(yàn)中受到了用戶(hù)的好評(píng)。 PC機(jī)的RS-232C串行口是使用最多的接口之一。因此,4串口、8串口等以增加串口數(shù)量為目的的ISA總線卡產(chǎn)品大量問(wèn)世。一般串口應(yīng)用只是使用了RXD和TXD兩條傳輸線和地線所構(gòu)成的串口的最基本的應(yīng)用條件,而本文介紹一個(gè)利用PC機(jī)的RS-232串口加上若干電路來(lái)實(shí)現(xiàn)多串口需求的接口電路。 1.PC機(jī)串口的RTS和DTR及擴(kuò)展電路 RTS和DTR是PC機(jī)中8250芯片的MODEM控制寄存器的兩個(gè)輸出引角D1和D0位,口地址為COM1的是3FCH,口地址為COM2的是2FCH。我們可以利用對(duì)MODEM控制寄存器3FCH或2FCH的寫(xiě)操作對(duì)其進(jìn)行控制。從而利用該操作和擴(kuò)展電路實(shí)現(xiàn)對(duì)TXD和RXD進(jìn)行多線擴(kuò)展,圖1是其擴(kuò)展電路。 在圖1所示的PC機(jī)串口擴(kuò)展電路中,74LS161是二進(jìn)制計(jì)數(shù)器,1腳是清0端,2腳是計(jì)數(shù)端,計(jì)數(shù)脈沖為負(fù)脈沖信號(hào),4051是八選一雙向數(shù)字/模擬電子開(kāi)關(guān)電路,其中一片用于正向輸出,一片用于反向輸出。該擴(kuò)展電路工作原理是通過(guò)控制PC機(jī)串口的DTR輸出的高低電平來(lái)形成74LS161的P2腳計(jì)數(shù)端的負(fù)脈沖信號(hào),使161的輸出端P14(QA)、P13(QB)、P12(QC)、P11(QD)腳依次在0000到1111十六個(gè)狀態(tài)中變化,本電路僅使用了QA、QB、QC三個(gè)輸出來(lái)形成對(duì)4051的ABC控制,最終使得4051(1)的輸入端TXD依次通過(guò)與TX1~TX8導(dǎo)通而得到輸出信號(hào),4051(2)的輸出端RXD與RX1~RX8依次導(dǎo)通形成輸入信號(hào)。由于RXD和TXD的導(dǎo)通是一一對(duì)應(yīng)的,因此串口通信就可以依次通過(guò)與多達(dá)8個(gè)帶有三線基本串口的外部設(shè)備進(jìn)行通信傳輸以實(shí)現(xiàn)數(shù)據(jù)傳送。PC機(jī)端的電平轉(zhuǎn)換電路是將RS232電平轉(zhuǎn)換為T(mén)TL電平,外設(shè)端的電平轉(zhuǎn)換電路是將TTL電平轉(zhuǎn)換為RS232電平。由于這種轉(zhuǎn)換有許多電路可以實(shí)現(xiàn),因而,這里不再介紹。 2.電路使用程序 對(duì)PC機(jī)串口COM1的編程如下: …… … ;對(duì)COM1口的波特率等設(shè)置; MOV DX,3FCH MOV AL,XXXXXX01B OUT DX,AL;D1生成RTS負(fù)脈沖,對(duì)74LS161輸出端清0 MOV AL,XXXXXX11B; OUT DX,AL ;4051的RX1和TX1導(dǎo)通 CALL COM ;調(diào)用通信子程序,與第一個(gè)外部設(shè)備通信; MOV CX,7 ;設(shè)置循環(huán)計(jì)數(shù)器; NEXT:MOV DX ,3FCH MOV AL,XXXXXX10B OUT DX ,AL ;D0位生成DTR的負(fù)脈沖,形成161的P2腳計(jì)數(shù)脈沖 MOV AL,XXXXXX11B OUT DX,AL ;RX2和TX2導(dǎo)通 CALL COM ;調(diào)用通信子程序,與第二個(gè)外部設(shè)備通信 LOOP NEXT ;循環(huán)與另外6個(gè)外部設(shè)備通信 … … ;通信子程序略 3.使用說(shuō)明 由于該擴(kuò)展的多路接口在通信時(shí)共用一個(gè)子程序,因此在與某一路導(dǎo)通時(shí),系統(tǒng)只能與這一路的外部設(shè)備進(jìn)行通信聯(lián)絡(luò)。 如果工作現(xiàn)場(chǎng)需要立即和某一路通信,則需要對(duì)3FCH的D1位執(zhí)行兩個(gè)寫(xiě)操作并在RTS腳形成負(fù)脈沖,以對(duì)7416I清0后,再連接執(zhí)行若干次對(duì)DTR的兩次寫(xiě)操作。例如想對(duì)第4路外設(shè)通信,則需要執(zhí)行完成對(duì)74LS161清0后,再連續(xù)三次對(duì)3FCH的D0位進(jìn)行兩個(gè)寫(xiě)操作以形成DTR腳的負(fù)脈沖,然后即可調(diào)用通信子程序。 如需使用PC機(jī)的COM2串口,只需將程序中的3F8H~3FDH全部換成2F8H~2FDH即可。 如果使用十六選一雙向數(shù)字/模擬電子開(kāi)關(guān)電路,可將74LS161的QA、QB、QC、QD四個(gè)輸出端接至電子開(kāi)關(guān)的四個(gè)控制端A、B、C、D,這樣就可以達(dá)到一個(gè)PC機(jī)的RS232口與16個(gè)帶有串口的外設(shè)的數(shù)據(jù)通信。

回答者:boning2162016-05-21 00:00

相關(guān)問(wèn)題

車(chē)友關(guān)注

最新標(biāo)簽

按字母分類(lèi):
ABCDEFGHIJKLMNOPQRSTWXYZ0-9