国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的運(yùn)動(dòng)控制系統(tǒng)串口擴(kuò)展設(shè)計(jì)

2013-10-14 11:01:50趙兵黃曉華
機(jī)械制造與自動(dòng)化 2013年5期
關(guān)鍵詞:全向波特率電平

趙兵,黃曉華

(南京理工大學(xué)機(jī)械工程學(xué)院,江蘇南京 210094)

0 引言

串口通訊因?yàn)槠鋮f(xié)議簡(jiǎn)單,操作方便,如今已在工業(yè)控制系統(tǒng)、儀器測(cè)量系統(tǒng)等各個(gè)領(lǐng)域被越來(lái)越廣泛地應(yīng)用[1]。而現(xiàn)代計(jì)算機(jī)、各種處理芯片等其他控制終端僅僅配備了少量的通用串口,在很多需要多串口的系統(tǒng)中并不能滿(mǎn)足需求。為了解決在所研究的全向移動(dòng)機(jī)器人運(yùn)動(dòng)控制系統(tǒng)中出現(xiàn)的串口個(gè)數(shù)不能滿(mǎn)足的問(wèn)題,現(xiàn)使用FPGA(field-programmable gate array)芯片進(jìn)行邏輯編程,實(shí)現(xiàn)了擴(kuò)展多個(gè)串口進(jìn)行通信的功能。

1 運(yùn)動(dòng)控制系統(tǒng)結(jié)構(gòu)

在全向移動(dòng)機(jī)器人的運(yùn)動(dòng)控制中,使用伺服電動(dòng)機(jī)控制底盤(pán)驅(qū)動(dòng)機(jī)器人可以進(jìn)行精密的運(yùn)動(dòng)控制,本文使用MAXON電動(dòng)機(jī)搭載以色列公司生產(chǎn)的Elmo伺服控制器進(jìn)行伺服控制。Elmo伺服驅(qū)動(dòng)器提供了串口與控制芯片通信進(jìn)行命令地接收和反饋。在運(yùn)動(dòng)控制系統(tǒng)中,微處理器采集各種傳感器的信息進(jìn)行分析綜合,判定機(jī)器人當(dāng)前所處的狀態(tài),根據(jù)目前自身所處的狀態(tài)(包括姿態(tài),方向角,位置點(diǎn),加速度,速度等其他方面),對(duì)安裝于機(jī)器人底盤(pán)的三個(gè)電動(dòng)機(jī)發(fā)出不同的運(yùn)動(dòng)命令,使各個(gè)電動(dòng)機(jī)帶動(dòng)機(jī)器人的三個(gè)全向輪協(xié)同工作,達(dá)到所需要的運(yùn)動(dòng)軌跡,速度,姿態(tài)等。

本文的運(yùn)動(dòng)控制系統(tǒng)采用了美國(guó)公司德州儀器所生產(chǎn)的DSP2812作為主控制器,DSP2812擁有兩個(gè)串行通信口SCIA和SCIB,但是,在該全向定位控制系統(tǒng)中,不僅需要控制三個(gè)伺服電動(dòng)機(jī)的運(yùn)動(dòng),而且還需要與其他傳感器和一些監(jiān)測(cè)設(shè)備(例如監(jiān)測(cè)狀態(tài)的電腦終端等)進(jìn)行通訊,因此,為了實(shí)現(xiàn)這些擴(kuò)展的功能,利用FPGA設(shè)計(jì)了中間擴(kuò)展模塊。全向機(jī)器人運(yùn)動(dòng)控制系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 控制系統(tǒng)結(jié)構(gòu)圖

該系統(tǒng)中的DSP2812與FPGA之間的數(shù)據(jù)傳輸采用了并口通信,將擴(kuò)展的子串口映射到不同的地址中,需要往哪個(gè)子串口傳輸數(shù)據(jù)時(shí)往相應(yīng)的地址中寫(xiě)入數(shù)據(jù)即可,讀取時(shí),當(dāng)可讀信號(hào)脈沖來(lái)時(shí),給予中斷并通過(guò)控制線(xiàn)判定讀取的串口號(hào)。

考慮到并行通信口要比串口速度快,速度級(jí)并不一致,所以設(shè)計(jì)了緩存模塊,在發(fā)送和接收系統(tǒng)中加入16×8的FIFO(first input first output)。

另外,F(xiàn)PGA是TTL電平,而串口協(xié)議規(guī)定的邏輯1電平是-3V~-15V,邏輯0電平是+3V~+15V,兩者使用了max232進(jìn)行電平轉(zhuǎn)換。

2 FPGA擴(kuò)展模塊的設(shè)計(jì)

為了實(shí)現(xiàn)上述的控制要求,本次設(shè)計(jì)的FPGA使用Altera公司的Cyclone II系列的EP2C5Q208C8芯片,軟件設(shè)計(jì)在Quartus II開(kāi)發(fā)集成設(shè)計(jì)環(huán)境中完成。通過(guò)Verilog硬件描述語(yǔ)言實(shí)現(xiàn)的功能設(shè)計(jì)。設(shè)計(jì)的一些主要模塊有全局控制模塊,時(shí)鐘發(fā)生器模塊,發(fā)送模塊,接收模塊。通過(guò)對(duì)這些模塊的設(shè)計(jì)編程實(shí)現(xiàn)相應(yīng)的時(shí)序控制,完成串口擴(kuò)展的功能。

2.1 時(shí)鐘發(fā)生模塊設(shè)計(jì)(圖2)

圖2 時(shí)鐘模塊程序塊圖

對(duì)頻率為40MHz的晶振源進(jìn)行分頻,產(chǎn)生所需要的各種時(shí)鐘頻率。將串口通信的波特率設(shè)為9600bit/s,在具體的實(shí)現(xiàn)過(guò)程中,發(fā)送和接收模塊工作頻率設(shè)為波特率的16倍,具體分頻時(shí),創(chuàng)建一個(gè)發(fā)送器時(shí)鐘變量和一個(gè)計(jì)數(shù)變量,初始化為零,每當(dāng)系統(tǒng)時(shí)鐘上升沿到來(lái)時(shí),計(jì)數(shù)變量自加1,當(dāng)計(jì)數(shù)到130時(shí),發(fā)送器時(shí)鐘變量電平立即反轉(zhuǎn),計(jì)數(shù)清零,這樣循環(huán)往復(fù),就產(chǎn)生了所需的發(fā)送接收模塊的工作頻率。同理,還可以用它產(chǎn)生其他所需要的各種時(shí)鐘頻率。

2.2 接收模塊設(shè)計(jì)(圖3)

通過(guò)時(shí)鐘發(fā)生模塊得到的接收模塊的工作時(shí)鐘頻率為波特率的16倍,接收模塊首先等待數(shù)據(jù)的到來(lái),串口通信在空閑時(shí)為高電平,當(dāng)有數(shù)據(jù)進(jìn)行通訊時(shí)首先發(fā)送一個(gè)低電平的起始位,接收模塊在每個(gè)工作頻率的上升沿到來(lái)時(shí)檢測(cè)輸入是否為低電平,若是則開(kāi)始計(jì)數(shù),如果連續(xù)8個(gè)工作頻率都檢測(cè)為低電平,則確認(rèn)接收到了起始位,此后每隔16個(gè)時(shí)鐘接收一位數(shù)據(jù),并將接收到的數(shù)據(jù)通過(guò)移位寄存器轉(zhuǎn)化成并行數(shù)據(jù)。最后通過(guò)并行口傳輸給主控制器。若接收過(guò)程中發(fā)現(xiàn)錯(cuò)誤接收,Error線(xiàn)拉低,并且丟棄此次所接收數(shù)據(jù)。

圖3 接收模塊程序塊圖

2.3 發(fā)送模塊設(shè)計(jì)(圖4)

圖4 發(fā)送模塊程序塊圖

從DSP輸出的并行數(shù)據(jù)在發(fā)送模塊里轉(zhuǎn)化成串行數(shù)據(jù)從相對(duì)應(yīng)的串口輸出。當(dāng)發(fā)送數(shù)據(jù)信號(hào)電平為高,則將并行數(shù)據(jù)鎖存放入特定寄存器,判定發(fā)送寄存器是否有數(shù)據(jù),如果有將數(shù)據(jù)放入FIFO模塊,等待發(fā)送。對(duì)于要發(fā)送的數(shù)據(jù),在時(shí)鐘的控制下移位寄存器將它按照從低到高依次發(fā)出。

2.4 全局模塊

完成上述各子模塊的設(shè)計(jì)后,需要考慮如何使這些子模塊在完成自己的功能的同時(shí)相互之間配合完成所需的功能。為此,設(shè)計(jì)了一個(gè)全局模塊負(fù)責(zé)這些子模塊的協(xié)調(diào)調(diào)度。并口的讀寫(xiě)時(shí)序與DSP的讀寫(xiě)時(shí)序同步,需要發(fā)送數(shù)據(jù)時(shí),DSP先拉低FPGA的WR信號(hào)線(xiàn),通過(guò)地址線(xiàn)和數(shù)據(jù)線(xiàn)往相應(yīng)的地址發(fā)送相應(yīng)的數(shù)據(jù)。FPGA接收到數(shù)據(jù)后,由于地址的不同,端口選擇線(xiàn)CS[2∶0]將需要發(fā)送的端口線(xiàn)拉低。在時(shí)序的推動(dòng)下,并行數(shù)據(jù)發(fā)送給相應(yīng)分端口的發(fā)送模塊,然后發(fā)送模塊通過(guò)將數(shù)據(jù)移位按照一定的波特率串行發(fā)送出去。接收數(shù)據(jù)時(shí),F(xiàn)PGA在接收模塊中將串行數(shù)據(jù)接收轉(zhuǎn)化并行數(shù)據(jù),并拉低自身的狀態(tài)線(xiàn),全局控制模塊通過(guò)對(duì)狀態(tài)線(xiàn)的讀取獲取數(shù)據(jù)來(lái)自于哪一個(gè)端口。整個(gè)FPGA串口擴(kuò)展系統(tǒng)的程序圖如圖5所示。

圖5 Quartus II中各模塊連接程序圖

3 結(jié)語(yǔ)

本文成功地在運(yùn)動(dòng)控制系統(tǒng)中實(shí)現(xiàn)了基于FPGA的串口擴(kuò)展,解決了處理器串口較少的問(wèn)題。用Labview編寫(xiě)的上位機(jī)測(cè)試軟件對(duì)此系統(tǒng)進(jìn)行了長(zhǎng)達(dá)數(shù)個(gè)小時(shí)的發(fā)送和接收測(cè)試,結(jié)果表明效果良好。并且此設(shè)計(jì)還可以運(yùn)用到其他需要串口擴(kuò)展的平臺(tái)或系統(tǒng)中去,應(yīng)用面廣,實(shí)用前景好。

[1]樊正方,羅暉.基于FPGA的串口集線(xiàn)器設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2008,21(9):54-55.

[2]張羽,胡玉貴,等.基于FPGA的多串口擴(kuò)展實(shí)現(xiàn)[J].電子器件,2009,32(1):233-236.

[3]張偉,談良.串行通信接口的擴(kuò)展在電臺(tái)組網(wǎng)控制系統(tǒng)中的應(yīng)用[J].指揮信息系統(tǒng)與技術(shù),2010,01(1):46-49,81.

[4]周之炎,毛玉良.機(jī)器人多路傳感器數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)[J].機(jī)械制造與自動(dòng)化,2009,38(1):157-159.

[5]楊茂林.基于FPGA的智能串口模塊設(shè)計(jì)[J]工業(yè)控制計(jì)算機(jī).,2010,23(5):4-5,8.

猜你喜歡
全向波特率電平
基于ROS和全向舵輪驅(qū)動(dòng)的移動(dòng)機(jī)器人系統(tǒng)設(shè)計(jì)
基于“智慧課堂”的全向機(jī)器人課程實(shí)踐探索
打造別墅小庭院熱情音樂(lè)派對(duì) 暢玩Sonance OMNI-6T全向戶(hù)外音箱
CAN 總線(xiàn)波特率自適應(yīng)程序設(shè)計(jì)
智能制造(2020年5期)2020-07-03 06:24:00
全向輪主軸的設(shè)計(jì)與分析
基于FPGA的異步串行通信波特率容錯(cuò)設(shè)計(jì)
NPC五電平Z源逆變器的設(shè)計(jì)研究
基于三電平光伏并網(wǎng)逆變器控制系統(tǒng)的研究與實(shí)踐
基于NPC三電平變換器的STATCOM研究
一種多電平逆變器及其并網(wǎng)策略
沂源县| 江津市| 黔南| 洪雅县| 吴川市| 龙胜| 陇南市| 营山县| 岳池县| 江都市| 水富县| 江源县| 阳高县| 会东县| 长治县| 清苑县| 伊川县| 永登县| 容城县| 阳原县| 固原市| 潞西市| 贵港市| 林州市| 喀喇沁旗| 宜兰县| 宁南县| 逊克县| 满城县| 眉山市| 北宁市| 元谋县| 格尔木市| 铜梁县| 吕梁市| 台安县| 岳阳市| 万山特区| 永川市| 安庆市| 彰武县|