• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于RS485總線的PC機(jī)與FPGA通信系統(tǒng)設(shè)計(jì)探索

      2014-04-29 03:59:25王明新
      中國新技術(shù)新產(chǎn)品 2014年4期
      關(guān)鍵詞:字節(jié)寄存器中斷

      王明新

      (國家新聞出版廣電總局二0二二臺(tái),新疆 喀什 844000)

      隨著可編程邏輯器件技術(shù)的大力推廣,F(xiàn)PGA系統(tǒng)的實(shí)時(shí)控制變得格外重要,研究PC機(jī)與FPGA之間的通信系統(tǒng)已成為重要課題。通過高級數(shù)據(jù)鏈路控制協(xié)議使RS485總線作為FPGA信息系統(tǒng)與PC之間的連接,實(shí)現(xiàn)信息傳輸,是極為實(shí)用且常用的方案。FPGA是一種可進(jìn)行反復(fù)編程的門陣列系統(tǒng),通過硬件處理技術(shù)迅速而靈活地完成設(shè)定的工作,同時(shí)經(jīng)過多路性處理對信息實(shí)時(shí)預(yù)測仿真,是一類非常實(shí)用的嵌入式系統(tǒng),是專業(yè)集成電路領(lǐng)域中獨(dú)具代表性的半定制電路,它不僅能夠有效解決傳統(tǒng)定制電路存在的缺陷,同時(shí)也規(guī)避了原始編程器件電路數(shù)有限的問題。在RS485總線的連接下PC機(jī)能控制FPGA信息系統(tǒng)的運(yùn)行,對實(shí)現(xiàn)系統(tǒng)的通信可控性有很大的作用。以下首先概述了基于RS485總線控制的FPGA的信息系統(tǒng)結(jié)構(gòu),然后介紹了信息系統(tǒng)結(jié)構(gòu)中重要的模塊設(shè)計(jì)方案,最后提出了實(shí)現(xiàn)RS485總線與FPGA通信系統(tǒng)間的連接的途徑。

      一、RS485總線控制的FPGA的信息系統(tǒng)結(jié)構(gòu)

      RS485總線的控制芯片由A通道、B通道、中斷控制單元、儲(chǔ)存器管理單元、工作狀態(tài)寄存器、ISA總線接口電路以及片內(nèi)端口RAM等七個(gè)部分組成。其中,A通道與B通道從材料及構(gòu)成上均完全相同,都主要包括負(fù)責(zé)發(fā)送和接受數(shù)據(jù)的兩個(gè)模塊部分,能夠有效保證全雙工通訊的穩(wěn)定有效性。存儲(chǔ)器中包含一個(gè)通道管理單元,能夠保證兩通道有序共享雙端口RAM而不至于產(chǎn)生數(shù)據(jù)交叉,發(fā)生沖突。在完成發(fā)送或接受任務(wù)時(shí),A通道和B通道均可中斷,中斷控制單元在這時(shí)起到了管理四個(gè)中斷源的作用,中斷控制單元按照中斷情況發(fā)生的先后順序在中斷狀態(tài)寄存器中記錄兩通道發(fā)送和接收任務(wù)的完成情況,同時(shí)提出中斷申請。而FPGA接口內(nèi)的RAM模塊可以使系統(tǒng)的發(fā)送通道、接收通道以及CPU之間的共享端實(shí)現(xiàn)雙端口RAM。地址譯碼、讀寫控制及命令譯碼等邏輯線路組成的ISA總線接口電路在節(jié)省地址空間的情況下,采用CPU操作將地址指向命令模式寄存器中,最后向狀態(tài)寄存器傳輸信息。這個(gè)系統(tǒng)的運(yùn)轉(zhuǎn)大大簡化了系統(tǒng)的規(guī)模以及系統(tǒng)接口關(guān)系,使印刷線路板空間得到大幅節(jié)省,有效降低了系統(tǒng)價(jià)格。

      系統(tǒng)中采用RS485總線型網(wǎng)絡(luò)電路是因其串行總線標(biāo)準(zhǔn)適宜差分平衡的方式完成信號傳輸,能夠很好地抵抗外界干擾,并同時(shí)允許一對雙絞線上的發(fā)送器啟動(dòng)兩個(gè)甚至兩個(gè)以上負(fù)載設(shè)備,適合數(shù)據(jù)傳輸之用。相較RS232總線來說,RS485總線有其顯著的優(yōu)勢,其通信距離相對來說比較遠(yuǎn),一般可以達(dá)到幾百、幾千米以上,同時(shí)能夠?qū)崿F(xiàn)多點(diǎn)通信,在同一范圍內(nèi)能夠構(gòu)建小型化的局域網(wǎng),具備較強(qiáng)的實(shí)踐應(yīng)用價(jià)值。且其信號抗干擾能力同樣優(yōu)于傳統(tǒng)的RS232總線,傳輸穩(wěn)定性極強(qiáng),因此,在信息系統(tǒng)設(shè)計(jì)中一般采用RS485現(xiàn)場總線,但需要注意的是,為盡最大限度保障網(wǎng)絡(luò)系統(tǒng)傳輸?shù)姆€(wěn)定性,需在RS485網(wǎng)絡(luò)傳輸線的初始端和末尾端應(yīng)該各接一個(gè)一百二十歐的匹配電阻。

      二、控制系統(tǒng)中主要模塊設(shè)計(jì)

      (一)命令、狀態(tài)寄存器

      RS485是一類標(biāo)準(zhǔn)化總線控制器,在對通信要求較高的傳輸設(shè)計(jì)中,一般采用串行總線標(biāo)準(zhǔn),選用平衡發(fā)送及差分接收的方式,有其較強(qiáng)的靈敏度與抗干擾能力,內(nèi)部常置多達(dá)26個(gè)命令模塊,每個(gè)命令均利用FO地址模塊與,每個(gè)地址中的數(shù)據(jù)均記錄了工作模式及工作方式的相關(guān)信息??刂破髦圆捎盟奈坏刂肪€,也正是為了減少內(nèi)部空間占用,這四位地址線分別為A3-A0。在有效控制了FO端口地址的前提下,進(jìn)行寫操作時(shí),CPU向U0地址中寫入的數(shù)據(jù)是具有一定指向性,直接指向命令及模式寄存器,進(jìn)行讀操作時(shí),數(shù)據(jù)則指向狀態(tài)寄存器。當(dāng)需要寫入十二或十六位寄存器時(shí),因其數(shù)據(jù)總線為八位,所以要將數(shù)據(jù)連續(xù)兩次寫入同一端口,并按照高位字節(jié)先寫低位字節(jié)后寫的標(biāo)準(zhǔn)進(jìn)行。

      (二)接收、發(fā)送數(shù)據(jù)通道

      RS485總線控制器中,全雙工通道共有兩條,且其基本材料、結(jié)構(gòu)等均完全相同,這兩條通道編號分別為A和B,其基本結(jié)構(gòu)均包括一個(gè)發(fā)送模塊以及一個(gè)接受模塊,模塊的工作是同時(shí)并行進(jìn)行的,這能夠保證數(shù)據(jù)傳輸?shù)乃俾始熬取?/p>

      接收模塊的工作依次為7EH識別、零碼剔除、并串轉(zhuǎn)換、地址識別、CRC校驗(yàn)及無效幀檢測。CPU發(fā)出接受命令后,立即傳輸?shù)娇偩€的接收模塊,首先由標(biāo)志字節(jié)識別模塊對所接受的字節(jié)進(jìn)行識別檢測工作,如果在檢測過程中發(fā)現(xiàn)7EH標(biāo)志,即允許接收,與此同時(shí),零碼剔除模塊等準(zhǔn)備進(jìn)入工作狀態(tài)。所接收的數(shù)據(jù)流在零碼剔除模塊的刪除零位處理之后,傳輸?shù)綌?shù)據(jù)位移寄存器中,數(shù)據(jù)位移寄存器中的串并轉(zhuǎn)換系統(tǒng)對接收到的數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換工作,然后傳輸?shù)紺RC位移寄存器中完成CRC校驗(yàn),校驗(yàn)完畢后,會(huì)形成遺傳整型字節(jié),被傳輸至數(shù)據(jù)緩沖區(qū),接下來,地址識別模塊將對這些數(shù)據(jù)進(jìn)行識別。地址識別模塊根據(jù)接收數(shù)據(jù)的地址字段與本站設(shè)置值相比較,如果地址信息不符合要求,所接收數(shù)據(jù)的允許接收標(biāo)志將被清除,同時(shí)完成接收模塊的復(fù)位,并執(zhí)行下一輪搜索,如果地址信息符合標(biāo)準(zhǔn),那么數(shù)據(jù)經(jīng)過處理后將存入雙端口RAM中。

      發(fā)送模塊的工作順序有所差別,首先開始工作的是時(shí)鐘生成子模塊,隨后寄存器接受數(shù)據(jù)及CRC信息,進(jìn)行相關(guān)處理,在這之后還會(huì)進(jìn)行零碼插入、控制信息生成、時(shí)鐘信息傳輸、并串轉(zhuǎn)換等一系列工作。波特率寄存器的設(shè)置情況能夠影響時(shí)鐘生成模塊分頻工作時(shí)鐘,產(chǎn)生的本路根據(jù)高級數(shù)據(jù)鏈路控制協(xié)議完成數(shù)據(jù)發(fā)送時(shí)鐘??刂颇K會(huì)在初始化后標(biāo)志字節(jié)7EH,并鎖入數(shù)據(jù)緩存器中。在接收到CPU發(fā)出的“發(fā)送”命令時(shí),數(shù)據(jù)緩存器中的數(shù)據(jù)將被寫入到數(shù)據(jù)位移寄存器中,同時(shí)申請存儲(chǔ)器管理單位提供的數(shù)據(jù)并啟動(dòng)發(fā)送過程。與此同時(shí),計(jì)數(shù)有序進(jìn)行,保證數(shù)據(jù)不會(huì)出現(xiàn)移位,其工作原理主要是:CRC移位寄存器對發(fā)送的數(shù)據(jù)進(jìn)行逐位的核對、計(jì)算,并將結(jié)果存儲(chǔ)在字節(jié)計(jì)數(shù)器中,當(dāng)所存儲(chǔ)的數(shù)值達(dá)到設(shè)定值后,停止其他數(shù)據(jù)生成,將CRC計(jì)算結(jié)果附加載發(fā)送的數(shù)據(jù)信號末位,同步進(jìn)行傳輸。最后,控制模塊還會(huì)在數(shù)據(jù)緩存器之中添加一個(gè)幀同步標(biāo)志字節(jié),并根據(jù)中斷允許設(shè)置決定是否發(fā)出中斷請求,完成一幀數(shù)據(jù)的發(fā)送。

      (三)雙端口RAM和相應(yīng)的存儲(chǔ)器管理方式

      系統(tǒng)中的數(shù)據(jù),無論是即將要發(fā)送的部分,還是已經(jīng)被接受的部分,會(huì)被暫時(shí)存放在雙端口RAM中,此RAM是RS485總線和FPGA交換數(shù)據(jù)的唯一橋梁,由上面的分析不難看出,A、B兩個(gè)通道會(huì)共享這個(gè)橋梁,但按照系統(tǒng)要求,兩通道所占用的空間大小顯然會(huì)有所區(qū)別,這是由發(fā)送數(shù)據(jù)或接受數(shù)據(jù)的起始地址和數(shù)據(jù)長度來決定。如果A通道和B通道同時(shí)使用存儲(chǔ)器進(jìn)行存取數(shù)據(jù)工作很容易發(fā)生對RS485總線的回路競爭,要避免這種情況就要使用DMA控制器,進(jìn)行RAM空間管理。存儲(chǔ)器管理單元能夠記住當(dāng)前每個(gè)通道存取數(shù)據(jù)時(shí)使用的RAM地址,對兩通道對片內(nèi)存儲(chǔ)器的存取請求進(jìn)行循環(huán)查詢,合理調(diào)節(jié)數(shù)據(jù)。

      在復(fù)位發(fā)生后,雙端口RAM會(huì)出現(xiàn)一段空閑時(shí)間,如果通道中有存儲(chǔ)器發(fā)出請求,那么片內(nèi)的RAM控制器會(huì)進(jìn)入下一個(gè)狀態(tài),RAM地址在這一過程中,被準(zhǔn)確傳遞至總線,隨機(jī)進(jìn)行數(shù)據(jù)的讀與寫操作。接收到復(fù)位申請信號,地址計(jì)數(shù)器又會(huì)歸零。A通道和B通道可能在這一瞬間均處于全雙工狀態(tài),波特率為10M,那么在一個(gè)字節(jié)的傳輸時(shí)間段內(nèi),A通道和B通道將各自訪問存儲(chǔ)器一次,共為四次??刂破鲗AM的數(shù)據(jù)的存取時(shí)間在一定范圍內(nèi),每存取一個(gè)字節(jié)需要經(jīng)過四個(gè)狀態(tài),那么所花費(fèi)的時(shí)間則為十分鐘,如果控制器的工作始終保持在四十兆赫,那么時(shí)間為0.1微秒,滿足我們的需求。

      (四)中斷控制單元

      數(shù)據(jù)傳輸通道在完成數(shù)據(jù)傳輸任務(wù)后都會(huì)產(chǎn)生中斷申請,這可能先后產(chǎn)生4個(gè)中斷請求,于是,中斷控制單元就會(huì)對中斷源進(jìn)行管理工作。中斷控制單元判斷中斷是否合理,主要是根據(jù)通道的狀態(tài)和工作模式來進(jìn)行的,如果通道內(nèi)的任務(wù)處于完成狀態(tài)且控制單元允許中斷發(fā)生,那么中斷申請和通道狀態(tài)將會(huì)被鎖存,中斷狀態(tài)寄存器中會(huì)產(chǎn)生相應(yīng)的請求,這個(gè)請求中對通道和中斷類型及中斷狀態(tài)都有相對應(yīng)的描述。若兩通道中同時(shí)產(chǎn)生中斷請求,A通道的中斷請求將先于B通道鎖存,中斷狀態(tài)儲(chǔ)存器在CPU讀取操作后會(huì)與相應(yīng)通道的狀態(tài)儲(chǔ)存器同時(shí)自動(dòng)復(fù)位,在中斷存儲(chǔ)器的中斷請求得到響應(yīng)后,中斷狀態(tài)會(huì)被鎖存,另一通道的中斷請求會(huì)同這一過程一樣完成。

      三、實(shí)現(xiàn)RS485總線與FPGA通信系統(tǒng)間的連接

      用標(biāo)準(zhǔn)硬件描述語言在電阻晶體管邏輯電路下,采用自上而下的方法設(shè)計(jì),能夠保證其運(yùn)行狀態(tài)。在基于RS485的PC機(jī)與FPGA通信系統(tǒng)的設(shè)計(jì)中,通過仿真和優(yōu)化后發(fā)現(xiàn)其資源利用率達(dá)到百分之八十。而聯(lián)機(jī)通信測試其中斷模式和查詢模式可以證實(shí)并不會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)誤。人為造成的異常情況發(fā)生時(shí),通信控制器會(huì)正常報(bào)告出錯(cuò)誤狀態(tài)。

      在實(shí)際測試中,我們主要應(yīng)用VHDL語言進(jìn)行編程,采用的主要軟件系統(tǒng)為ISE6.0,其自帶軟件模擬RAM模塊,安裝于PC段,用于進(jìn)行控制信息發(fā)送。采用的目標(biāo)FPGA件為Virtex XCV50。實(shí)測顯示,聯(lián)機(jī)狀態(tài)下,無論是中斷還是查詢,5萬次通訊測試下,幀準(zhǔn)確、系統(tǒng)穩(wěn)定率為100%,為了更進(jìn)一步證實(shí)其穩(wěn)定性,我們還進(jìn)行了強(qiáng)電干擾實(shí)驗(yàn),以手電鉆置于RS485總線附近,再行5萬次通訊測試,出現(xiàn)且僅出現(xiàn)1次通訊測試,完全能滿足目前苛刻環(huán)境的要求,由此可見,基于RS485總線的PC機(jī)與FPGA通信系統(tǒng)有其較強(qiáng)的抗干擾優(yōu)勢、通訊穩(wěn)定性極強(qiáng),能夠打破通訊環(huán)境的限制,同時(shí)實(shí)用性較強(qiáng),傳輸所消耗的功率相對較小,系統(tǒng)芯片的穩(wěn)定性十分強(qiáng),能夠持續(xù)運(yùn)作,具有極高的實(shí)用價(jià)值。

      結(jié)語

      在電阻晶體管邏輯電路下,用標(biāo)準(zhǔn)硬件描述語言設(shè)計(jì)的高級數(shù)據(jù)鏈路控制協(xié)議為RS485總線與FPGA通信系統(tǒng)的功能性連接提供了有效的控制。在這個(gè)接口電路中存在獨(dú)立的雙工通道,有四千字節(jié)的雙接口RAM,通過查詢和中斷這兩種方式有效控制數(shù)據(jù)的流動(dòng),且該系統(tǒng)能夠自動(dòng)識別7EH標(biāo)志,并根據(jù)系統(tǒng)預(yù)先設(shè)定值識別地址位數(shù),同時(shí)還能自動(dòng)插入或刪除零碼。另外,在數(shù)據(jù)溢出或發(fā)生其他異常時(shí),系統(tǒng)能自動(dòng)終止并檢測錯(cuò)誤,在控制端口以FO方式與CPU相接,內(nèi)部的雙端口RAM通過MEM方式與CPU相接,系統(tǒng)內(nèi)部設(shè)置有的波特率發(fā)生器并能決定數(shù)據(jù)傳輸?shù)乃俾省?/p>

      在基于RS485總線的PC機(jī)與FPGA通信系統(tǒng)的設(shè)計(jì)中,接口芯片能夠穩(wěn)定在四十兆赫的狀態(tài)下工作,而其中各通道的波特率最高能夠達(dá)到十兆赫,其操作過程簡單,所消耗的功率較小且可靠性很高,具有很高的使用價(jià)值。

      [1]何青,胡漢春,代剛,等.基于RS-485總線的PC機(jī)與單片機(jī)串行通訊仿真系統(tǒng)的設(shè)計(jì)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2011(01).

      [2]胡中功,黃波,江維.基于RS485總線的PC與單片機(jī)多機(jī)通信系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2012(01).

      [3]王飛,吳茂.基于RS485的PC與智能儀表通信系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009(32).

      [4]彭宏偉,邊志遠(yuǎn),李翠霞.基于RS-485總線的PC機(jī)與單片機(jī)串行通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].大地測量與地球動(dòng)力學(xué),2009(S1).

      [5]耿昕.基于FPGA的通信信號處理的設(shè)計(jì)與實(shí)現(xiàn)[D].南京理工大學(xué),2013.

      [6]楊陽.VHF頻段高速通信系統(tǒng)設(shè)計(jì)及接收機(jī)FPGA實(shí)現(xiàn)[D].北京郵電大學(xué),2013.

      [7]孟紹良,張海柱,劉述防,等.基于FPGA的直序擴(kuò)頻通信系統(tǒng)設(shè)計(jì)[J].哈爾濱理工大學(xué)學(xué)報(bào),2012(06).

      [8]梁仕文,鄧洪波,梁志明,等.基于FPGA的通信原理實(shí)驗(yàn)平臺(tái)研制與應(yīng)用[J].實(shí)驗(yàn)室科學(xué),2013(03).

      [9]徐運(yùn)武,周澤湘.基于FPGA LPM多功能信號發(fā)生器設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011(15).

      猜你喜歡
      字節(jié)寄存器中斷
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
      簡談MC7字節(jié)碼
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      AT89C51與中斷有關(guān)的寄存器功能表解
      FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      阿合奇县| 枞阳县| 五常市| 和平县| 会理县| 错那县| 道真| 裕民县| 综艺| 望谟县| 南江县| 富顺县| 陕西省| 麻栗坡县| 玉溪市| 平利县| 马龙县| 阳春市| 保定市| 香港 | 安西县| 县级市| 琼结县| 遂宁市| 蓬莱市| 阿拉善右旗| 莱阳市| 石渠县| 安吉县| 贺兰县| 义乌市| 临武县| 兰西县| 揭西县| 游戏| 博湖县| 莱西市| 松潘县| 南江县| 汉源县| 清新县|