亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的串行一對(duì)多通信系統(tǒng)

        2020-04-23 11:16:30李漢青
        電子技術(shù)與軟件工程 2020年8期
        關(guān)鍵詞:發(fā)送器處理單元接收器

        李漢青

        (徐州科亞機(jī)電有限公司 江蘇省徐州市 221700)

        串行通信是通信雙方使用一條信號(hào)線對(duì)二進(jìn)制位進(jìn)行傳輸?shù)囊环N通信方法。串行通信作為一種靈活、方便、可靠的通信技術(shù),長(zhǎng)期以來(lái)被廣泛應(yīng)用在信息技術(shù)及工業(yè)控制領(lǐng)域。串行通信要求通信雙方遵守相同的串口協(xié)議。一般來(lái)講,串行通信方式一次只能實(shí)現(xiàn)兩個(gè)設(shè)備之間的點(diǎn)對(duì)點(diǎn)傳輸,若需要局部端的多個(gè)設(shè)備和主機(jī)端的一個(gè)設(shè)備進(jìn)行通信則需要主機(jī)端的設(shè)備依次和局部端的設(shè)備連接實(shí)現(xiàn),通常使用專用的器件來(lái)實(shí)現(xiàn)該需求,但由于串行通信標(biāo)準(zhǔn)多,靈活性大,就目前而言,還不能夠提供將局部端多路串行數(shù)據(jù)合成一路發(fā)送給主機(jī)端,將主機(jī)端的一路高速串行數(shù)據(jù)分解成多路并自動(dòng)發(fā)給局部端指定設(shè)備的收發(fā)器件。為此,本文介紹一種基于FPGA 的一對(duì)多路的串行通信方法及系統(tǒng)。

        1 系統(tǒng)設(shè)計(jì)的總體思想

        整個(gè)系統(tǒng)要實(shí)現(xiàn)的功能是將局部端的多路數(shù)據(jù),一般是多個(gè)功能模塊采集的數(shù)據(jù)在本地端進(jìn)行處理,將這些數(shù)據(jù)合并成一路數(shù)據(jù),通過(guò)一路高速串行通信借口發(fā)送到主機(jī)端。同時(shí),主機(jī)端的數(shù)據(jù),通過(guò)高速串行通信接口發(fā)送到本地端,本地端對(duì)接收到的數(shù)據(jù)進(jìn)行分析、處理,并將數(shù)據(jù)發(fā)送給主機(jī)指定的各個(gè)模塊中。這樣就實(shí)現(xiàn)了一路對(duì)多路的雙向通信。

        本文所介紹的系統(tǒng)是實(shí)現(xiàn)的1 路對(duì)8 路的系統(tǒng)。在設(shè)計(jì)中,本地端負(fù)責(zé)處理8 個(gè)模塊和主機(jī)端的數(shù)據(jù),8 個(gè)模塊和主機(jī)端都是串行通信接口,因此,本地端需要9 個(gè)UART,其中8 個(gè)和多路的模塊通信,1 個(gè)和主機(jī)通信。對(duì)于通用的MCU 芯片,一般外設(shè)有2對(duì)UART,要實(shí)現(xiàn)9 個(gè)或更多的UART,MCU 無(wú)能為力。不過(guò),這樣的需求可以在FPGA 上輕松實(shí)現(xiàn),理論上,只要FPGA 的資源充足,可以實(shí)現(xiàn)足夠多的UART 和其他外設(shè)。本文所介紹的設(shè)計(jì)中采用ALTERA 公司的EP3C10 器件,可以使用Quartus II 開(kāi)發(fā)軟件包。Quartus II 還包含一個(gè)SOPCBulid 設(shè)計(jì)平臺(tái),用戶可以在該平臺(tái)上設(shè)計(jì)自定義的NIOS II 嵌入式軟核處理器。通過(guò)SOPCBuild 的設(shè)置,可以在EP3C10 上實(shí)現(xiàn)一個(gè)有9 個(gè)UARTR 外設(shè)的軟核處理器,正好滿足一對(duì)多的通信需求。

        2 系統(tǒng)實(shí)現(xiàn)方法

        前文中描述了實(shí)現(xiàn)一對(duì)多通信中多個(gè)UART 的總體思想。本部分描述如何在基于FPGA 的NIOS ii 軟核上進(jìn)行數(shù)據(jù)的處理及轉(zhuǎn)發(fā)。

        圖1 是要在FPGA 上實(shí)現(xiàn)的系統(tǒng)組成圖。該系統(tǒng)包括兩種端口,主機(jī)端端口和局部端端口。主機(jī)端端口包括主機(jī)端接收器、主機(jī)端發(fā)送器、主機(jī)端接收緩存、主機(jī)端發(fā)送緩存,主機(jī)端數(shù)據(jù)處理控制單元、主機(jī)數(shù)據(jù)處理單元、主機(jī)端發(fā)送控制單元。局部端端口包括8 個(gè)局部端接收器、8 個(gè)局部端發(fā)送器、8 個(gè)局部端接收緩存、8 個(gè)局部端發(fā)送緩存、局部端數(shù)據(jù)處理控制單元、局部數(shù)據(jù)處理單元、局部端發(fā)送控制單元。主機(jī)端端口和局部端端口的接收器、發(fā)送器由NIOS ii 的UART 外設(shè)實(shí)現(xiàn),主機(jī)端和局部端的接收緩存、發(fā)送緩存由NIOS ii 的FIFO 實(shí)現(xiàn),主機(jī)端和局部端的處理單元由基于NIOS II 的C 代碼實(shí)現(xiàn)。

        圖1:系統(tǒng)組成圖

        圖2:?jiǎn)温沸盘?hào)流示意圖

        接收器和發(fā)送器用來(lái)收發(fā)數(shù)據(jù),接收緩存用來(lái)暫時(shí)存放收到的還未處理的數(shù)據(jù),發(fā)送緩存用來(lái)存放處理好將要發(fā)送的數(shù)據(jù)。接收緩存和發(fā)送緩存的大小要結(jié)合數(shù)據(jù)傳輸速率、FPGA 邏輯單元的資源合理設(shè)置。局部端數(shù)據(jù)處理控制單元作用是將接收的數(shù)據(jù)放到各自對(duì)應(yīng)的接收緩存中,并監(jiān)測(cè)各個(gè)接收緩存中的數(shù)據(jù)量,達(dá)到一定數(shù)量時(shí),將數(shù)據(jù)轉(zhuǎn)給局部數(shù)據(jù)處理單元。局部數(shù)據(jù)處理單元按照和主機(jī)約定的協(xié)議打包,并將數(shù)據(jù)存放到主機(jī)發(fā)送緩存中。主機(jī)端發(fā)送控制單元監(jiān)測(cè)主機(jī)發(fā)送緩存中的數(shù)據(jù),當(dāng)數(shù)量達(dá)到某個(gè)值時(shí)就將數(shù)據(jù)寫(xiě)入主機(jī)端發(fā)送器,數(shù)據(jù)便通過(guò)發(fā)送器傳輸?shù)街鳈C(jī)端。主機(jī)根據(jù)協(xié)議可以確認(rèn)接收到的數(shù)據(jù)來(lái)自哪個(gè)局部端的模塊。系統(tǒng)和主機(jī)的連接可根據(jù)傳輸?shù)木嚯x選擇合適的串行通信方式,比如RS232、RS485 或CAN 等方式。

        圖3:系統(tǒng)工作流程

        同樣的,主機(jī)端數(shù)據(jù)處理控制單元負(fù)責(zé)將主機(jī)發(fā)過(guò)來(lái)的數(shù)據(jù)放入主機(jī)端緩存中,監(jiān)測(cè)其中的數(shù)據(jù)量,達(dá)到一定量的時(shí)候交由主機(jī)數(shù)據(jù)處理單元對(duì)接收的數(shù)據(jù)進(jìn)行解析,根據(jù)協(xié)議對(duì)數(shù)據(jù)進(jìn)行分類,確認(rèn)收到的數(shù)據(jù)是哪個(gè)局部端端口的,并將數(shù)據(jù)寫(xiě)入對(duì)應(yīng)端口的發(fā)送緩存中。局部端發(fā)送控制單元監(jiān)測(cè)發(fā)送緩存中的數(shù)據(jù),達(dá)到一定量時(shí)寫(xiě)入對(duì)應(yīng)的發(fā)送器。中。局部端的收發(fā)器對(duì)應(yīng)分散在不同地方的多個(gè)數(shù)據(jù)采集控制模塊,系統(tǒng)和各個(gè)局部端模塊的連接也可以使用多種串行通信方式。

        在這種通信方式下,系統(tǒng)和主機(jī)間的協(xié)議保證了數(shù)據(jù)轉(zhuǎn)發(fā)的可靠性。局部端數(shù)據(jù)發(fā)給主機(jī)前的打包中需要包含包頭、長(zhǎng)度、通道標(biāo)識(shí)等信息。主機(jī)通過(guò)通道標(biāo)識(shí)來(lái)確認(rèn)數(shù)據(jù)是來(lái)自于局部端的哪個(gè)設(shè)備。同樣的,主機(jī)接收緩存中的數(shù)據(jù)也是包含了通道標(biāo)識(shí)的數(shù)據(jù)包,主機(jī)數(shù)據(jù)處理單元在解析的時(shí)候根據(jù)通道標(biāo)識(shí),將解析好的數(shù)據(jù)寫(xiě)入對(duì)應(yīng)的局部發(fā)送緩存中。

        局部端發(fā)送控制單元和主機(jī)端發(fā)送控制單元既監(jiān)測(cè)發(fā)送緩存中的數(shù)據(jù)量,同時(shí)監(jiān)測(cè)發(fā)送器狀態(tài),只有在數(shù)據(jù)量達(dá)到設(shè)定值同時(shí)發(fā)送器空閑時(shí)才將數(shù)據(jù)傳給發(fā)送器,向外發(fā)送數(shù)據(jù)。

        在主機(jī)端和局部端同時(shí)工作時(shí)就實(shí)現(xiàn)了數(shù)據(jù)的雙向通信。

        3 系統(tǒng)工作過(guò)程

        以下結(jié)合圖2 單路信號(hào)流示意圖、圖3 系統(tǒng)工作流程圖來(lái)描述系統(tǒng)工作的過(guò)程。主機(jī)接收器或局部接收器對(duì)相應(yīng)的主機(jī)端接口和局部端接口進(jìn)行監(jiān)測(cè),監(jiān)測(cè)接口是否有數(shù)據(jù),沒(méi)有數(shù)據(jù)時(shí)則繼續(xù)監(jiān)測(cè)。當(dāng)局部端接口或主機(jī)端接口有數(shù)據(jù)的時(shí)候,接收數(shù)據(jù),并將接收的數(shù)據(jù)傳送到主機(jī)接收緩存或局部端接口對(duì)應(yīng)的緩存中,由局部數(shù)據(jù)處理控制單元或主機(jī)數(shù)據(jù)處理單元監(jiān)測(cè)局部接收緩存和主機(jī)接收緩存中的數(shù)據(jù)量是否達(dá)到設(shè)定值,若沒(méi)達(dá)到設(shè)定值,主機(jī)接收緩存和局部接收緩存繼續(xù)接收數(shù)據(jù)。當(dāng)數(shù)據(jù)量達(dá)到設(shè)定值時(shí),將局部接收緩存或主機(jī)接收緩存中的數(shù)據(jù)傳送至局部數(shù)據(jù)處理單元或主機(jī)數(shù)據(jù)處理單元,并由局部數(shù)據(jù)處理單元或主機(jī)數(shù)據(jù)處理單元對(duì)數(shù)據(jù)進(jìn)行處理,并將處理的數(shù)據(jù)發(fā)送至主機(jī)大宋緩存或局部發(fā)送緩存中。同時(shí),主機(jī)數(shù)據(jù)發(fā)送控制單元或局部數(shù)據(jù)發(fā)送控制單元監(jiān)測(cè)主機(jī)發(fā)送緩存或局部發(fā)送緩存中是否有接收到的數(shù)據(jù),若沒(méi)有接收到數(shù)據(jù)則繼續(xù)監(jiān)測(cè)。當(dāng)監(jiān)測(cè)到有數(shù)據(jù)時(shí),由局部數(shù)據(jù)處理單元或主機(jī)數(shù)據(jù)處理大怒眼控制主機(jī)發(fā)送緩存或局部發(fā)送緩存中的數(shù)據(jù)發(fā)送至主機(jī)發(fā)送器或局部發(fā)送器,然后由局部數(shù)據(jù)發(fā)送控制單元或主機(jī)數(shù)據(jù)發(fā)送控制單元將主機(jī)發(fā)送器或局部發(fā)送器接收的數(shù)據(jù)發(fā)送到主機(jī)端接口或局部端接口,并通過(guò)主機(jī)端接口或著局部端接口將數(shù)據(jù)傳送至微處理器進(jìn)行處理。當(dāng)局部端的多個(gè)局部接收器同時(shí)有數(shù)據(jù)接收時(shí),微處理器控制多個(gè)設(shè)備的數(shù)據(jù)將以中斷方式分別寫(xiě)入各自對(duì)用的局部接收緩存中,而局部數(shù)據(jù)處理控制單元或主機(jī)數(shù)據(jù)處理控制單元將不剪短的對(duì)局部接收緩存或主機(jī)接收緩存中的數(shù)據(jù)量進(jìn)行查詢和計(jì)算,若某個(gè)或多個(gè)局部接收緩存或主機(jī)緩存中的數(shù)據(jù)量達(dá)到設(shè)定值時(shí)(可根據(jù)緩存大小和傳輸速率設(shè)置為10bytes 左右)。此時(shí)需要啟動(dòng)局部端和主機(jī)端的通信協(xié)議,在數(shù)據(jù)前加上包頭、長(zhǎng)度、和通道標(biāo)識(shí)等信息,完成打包,然后將該完整的數(shù)據(jù)包發(fā)送至主機(jī)發(fā)送緩存或局部發(fā)送緩存中。

        由于局部端有多條數(shù)據(jù)傳輸通道,這些通道的數(shù)據(jù)都要發(fā)送到主機(jī)發(fā)送緩存中,因此主機(jī)發(fā)送緩存的空間應(yīng)該盡量大一些,可以容納多個(gè)局部端通道發(fā)送的數(shù)據(jù)。主機(jī)端的主機(jī)發(fā)送控制單元監(jiān)測(cè)主機(jī)發(fā)送緩存和主機(jī)發(fā)送器的工作狀態(tài),當(dāng)主機(jī)發(fā)送緩存中有數(shù)據(jù)且主機(jī)發(fā)送器空閑時(shí),主機(jī)發(fā)送控制單元控制主機(jī)反射緩存將數(shù)據(jù)傳輸給主機(jī)發(fā)送器,并控制主機(jī)發(fā)送器將數(shù)據(jù)發(fā)到主機(jī)端接口。主機(jī)接口通過(guò)串行通信方式傳輸給微處理器進(jìn)行處理,微處理器收到數(shù)據(jù)后進(jìn)行解析,根據(jù)通道標(biāo)識(shí)確定收到的數(shù)據(jù)來(lái)自于哪個(gè)局部端的設(shè)備。

        同時(shí),主機(jī)接收器若接收到主機(jī)端接口的數(shù)據(jù),同樣以中斷方式寫(xiě)入到主機(jī)接收緩存中,當(dāng)該主機(jī)接收緩存中有數(shù)據(jù),并達(dá)到設(shè)定值時(shí),主機(jī)數(shù)據(jù)處理控制單元啟動(dòng)主機(jī)數(shù)據(jù)處理單元,使主機(jī)數(shù)據(jù)處理單元讀取主機(jī)接收緩存中的數(shù)據(jù),并對(duì)該接收的數(shù)據(jù)進(jìn)行處理,讀出的數(shù)據(jù)中包括包頭、長(zhǎng)度、通道標(biāo)識(shí)等,主機(jī)數(shù)據(jù)處理單元依據(jù)通信協(xié)議對(duì)數(shù)據(jù)包解析,并根據(jù)解析出的通道標(biāo)識(shí)將該包中的數(shù)據(jù)發(fā)送到與指定通道對(duì)應(yīng)的局部發(fā)送緩存中。

        當(dāng)主機(jī)端和局部端的數(shù)據(jù)通路同時(shí)工作,實(shí)現(xiàn)雙工通信,而且,多個(gè)局部接收器可以同時(shí)工作來(lái)接收局部端的數(shù)據(jù),實(shí)現(xiàn)多路通信。主機(jī)收發(fā)器采用高波特率以實(shí)現(xiàn)高速通信。

        4 結(jié)論

        這種基于在FPGA 中實(shí)現(xiàn)外設(shè)和NIOSII 內(nèi)核的方式實(shí)現(xiàn)一對(duì)多串行通信的系統(tǒng),具有很高的靈活性、而且成本低廉。理論上,只要FPGA 資源足夠可實(shí)現(xiàn)任意多個(gè)串行接口和多個(gè)設(shè)備連接。

        在實(shí)驗(yàn)中的系統(tǒng)中,采用常見(jiàn)的低成本EP3C10 器件實(shí)現(xiàn)了10個(gè)本地設(shè)備端和一個(gè)主機(jī)端的通信,主機(jī)端以5Mbuad 的速率可以可靠運(yùn)行。

        猜你喜歡
        發(fā)送器處理單元接收器
        不同生物鏈組合對(duì)黃河下游地區(qū)引黃水庫(kù)富營(yíng)養(yǎng)化及藻類控制
        城市污水處理廠設(shè)備能耗及影響因素分析研究
        科技資訊(2021年10期)2021-07-28 04:04:53
        長(zhǎng)填齡滲濾液MBR+NF組合工藝各處理單元的DOM化學(xué)多樣性
        移頻發(fā)送器冗余切換設(shè)計(jì)研究
        一種高可用負(fù)載均衡網(wǎng)絡(luò)數(shù)據(jù)采集處理的方法及系統(tǒng)
        JXG-50S型相敏軌道電路接收器自動(dòng)測(cè)試臺(tái)
        埃及
        用于獲取車輛中的旋轉(zhuǎn)構(gòu)件的旋轉(zhuǎn)角度的傳感器組件
        傳感器世界(2017年4期)2017-03-23 10:50:49
        ZPW-2000A軌道電路接收器冗余電路存在問(wèn)題分析及對(duì)策
        從兩起故障談ZPW-2000發(fā)送盒報(bào)警檢測(cè)的改進(jìn)
        国产欧美亚洲精品a| 韩国一区二区三区黄色录像| 日本黑人乱偷人妻在线播放| 亚洲精品中文幕一区二区| 日日婷婷夜日日天干| 精品无码国产污污污免费网站| 无码高潮久久一级一级喷水| 日本激情一区二区三区| 狼人伊人影院在线观看国产| 亚洲综合成人婷婷五月网址| 天天做天天爱天天爽综合网| 大陆国产乱人伦| 国产成人福利av一区二区三区| av网站不卡的av在线| аⅴ天堂中文在线网| 亚洲人成网址在线播放| 91久久久久无码精品露脸| 亚洲av粉嫩性色av| 国产精品高湖呻呤久久av| 大肉大捧一进一出好爽视频动漫| 国产在线精品一区二区在线看| 一本大道久久精品 东京热| 亚州韩国日本区一区二区片| 色综合悠悠88久久久亚洲| 乱中年女人伦av三区| 亚洲av无码一区二区三区性色| 高潮喷水无遮挡毛片视频| 日本久久视频在线观看| 久久久久亚洲精品无码系列| 无码午夜成人1000部免费视频| 亚洲不卡电影| 久久久精品人妻一区二区三区免费| 天堂视频在线观看一二区| 亚洲av高清在线一区二区三区| 国产欧美日韩综合一区二区三区| 亚洲成人色黄网站久久| 丁香花五月六月综合激情| 专干老肥熟女视频网站300部| 亚洲国产精品嫩草影院久久| 中文字幕中乱码一区无线精品| 日本高清一道本一区二区|