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

        ?

        基于RS422總線的多路舵機網(wǎng)絡控制器設計

        2021-09-09 01:02:44鐘志賢吳世立郭宇豐
        昆明冶金高等專科學校學報 2021年3期
        關鍵詞:控制精度管腳蜂鳴器

        鐘志賢,丁 瑜,吳世立,郭宇豐

        (1.昆明冶金高等專科學校 a.網(wǎng)絡管理與信息中心;b.組織部;c.建筑工程學院,云南 昆明 650033;2.云南碧桂園房地產(chǎn)開發(fā)有限公司,云南 昆明 650225)

        0 引 言

        舵機作為一種位置、角度伺服的驅(qū)動器,常常被用于機器人、無人機等各種控制系統(tǒng)中[1-2]。因控制轉(zhuǎn)動的執(zhí)行機構往往需要多個舵機配合完成,故對舵機實現(xiàn)多路集中控制的需求較為廣泛。要實現(xiàn)對舵機的多路控制可采用基于CPLD、FPGA、DSP、單片機等產(chǎn)生多路PWM信號進行控制[3-10]。CPLD、FPGA的特點是電路可定制,可實現(xiàn)大規(guī)模的舵機控制,但是開發(fā)門檻高、成本高。單片機的特點是通用性強,開發(fā)使用簡單方便,但只適用于控制舵機數(shù)量較少的場合。

        綜合考慮成本和性能,本文給出了一種基于C8051F340單片機配合74HC595移位寄存器擴展的13路舵機控制器的硬件設計方案及軟件實現(xiàn)方法。

        1 方案設計

        多路舵機控制器采用模塊式的開發(fā)思想,設計有RS422總線接口以便控制器集成到其它控制系統(tǒng)中,作為一個單獨的控制模塊使用。設計原理如圖1所示。

        圖1 多路舵機網(wǎng)絡控制器系統(tǒng)設計原理Fig.1 Design principle diagram of multi-channel steering gear network controller system

        多路舵機控制器硬件主要是以C8051F340單片機為核心,包括RS422串行總線接口及電平轉(zhuǎn)換電路、電源電路、AT24C01存儲電路、JTAG與復位電路、74HC595擴展電路、LED及蜂鳴器驅(qū)動電路、多路舵機接口電路等。控制器設計有兩線式串行總線電可擦只讀存儲器AT24C01,用于保存上位機發(fā)來的舵機角度控制數(shù)據(jù),以實現(xiàn)模塊斷電復位后,快速恢復最近一次舵機的控制角度。多路舵機控制器的系統(tǒng)結構示意圖如圖2所示。

        圖2 多路舵機控制器系統(tǒng)結構示意Fig.2 Structrual diagram of multi-channel steering gear controller system

        2 硬件系統(tǒng)設計

        2.1 單片機的選擇及最小系統(tǒng)

        根據(jù)多路舵機控制器的功能需求,主控芯片采用C8051F340單片機。其為兼容8051微控制器內(nèi)核,可達 48 MIPS,具有 12 MHz 內(nèi)部振蕩器和4倍時鐘乘法器。工作電壓為2.70~5.25 V,64 kB 的片內(nèi)flash存儲器,4 352 B 的片內(nèi)RAM,4個通用16位定時器,5個捕捉/比較模塊及可編程計數(shù)器定時器陣列PCA。2個增強型UART,1個硬件實現(xiàn)的SMBus,1個USB控制器,10位ADC帶模擬多路器及多達40個I/O端口,能很好滿足控制器的功能擴展需求。多路舵機控制器硬件單片機最小系統(tǒng)電路圖如圖3所示。

        圖3 單片機最小系統(tǒng)電路Fig.3 Minimum system circuit of single chip microcomputer

        2.2 RS422電平轉(zhuǎn)換及電源電路

        多路舵機控制器控制部分電源通過RS422總線接口(圖4,J1所示)從上位機處獲取,網(wǎng)絡標號為VIN,GND,電壓為 5 V,VIN經(jīng)電壓轉(zhuǎn)換芯片HT7533將電壓轉(zhuǎn)為 3.3 V 供單片機及其他芯片使用,網(wǎng)絡標號為 3.3 V。為同時滿足多路舵機控制的功率需求,以及避免舵機抖動對控制部分電源的干擾,舵機的供電電源單獨設計,圖4中J3接口為舵機電源輸入接口,網(wǎng)絡標號為+5 V、0 V。圖4中J2為2種電源地線短接接口。

        圖4 RS422電平轉(zhuǎn)換與電源電路Fig.4 RS422 level conversion and power supply circuit

        多路舵機控制器采用了抗干擾強且差模傳輸、全雙工、傳輸距離遠的點對多點的RS422串行總線[11],電平轉(zhuǎn)換芯片采用MAX3491(圖4,U3),工作電壓為 3.3 V,長距離傳輸時需要使用終端電阻(圖4,R6、R7)阻值約等于傳輸電纜的特性阻抗。POWER_LED為電源指示燈。

        2.3 存儲模塊、LED及蜂鳴器驅(qū)動電路

        多路舵機控制器還設置有1個蜂鳴器、1個工作指示燈,以方便程序調(diào)試,指示工作狀態(tài)及進行相關報警。存儲模塊采用AT24C01(圖5,U5),通過SMBus總線與單片機的P10、P11管腳相連,具有 1 kB 的存儲空間,用來存儲各舵機的動作數(shù)據(jù)。WORK_LED為控制器工作指示燈。

        圖5 存儲模塊、LED及蜂鳴器驅(qū)動電路Fig.5 Memory module,LED and buzzer driver circuit

        2.4 74HC595驅(qū)動及舵機接口電路

        舵機有3條接線,分別為電源線、地線、控制信號線。多路舵機控制器設計了13路舵機接口,由5個單片機自帶的PWM(圖6,PWM1—PWM5)、8個74HC595擴展的舵機接口(圖6,DJ1—DJ8)組成。1片74HC595芯片可以將單片機的4個端口擴展為8個,若通過多片進行級聯(lián),更能有效節(jié)約單片機的I/O口資源。74HC595驅(qū)動及舵機接口電路如圖6所示。

        圖6 74HC595驅(qū)動及舵機接口電路Fig.6 74HC595 drive and steering gear interface circuit

        3 軟件系統(tǒng)設計

        3.1 舵機控制原理

        舵機的控制信號為周期 20 ms,頻率 50 Hz 的PWM信號[12-13],通過改變脈沖寬度控制舵機進行角度轉(zhuǎn)動,0.5~2.5 ms 的脈沖寬度對應舵機轉(zhuǎn)動角度為0~180°,且角度與脈沖的寬度成線性關系,可表示為a=90(t-0.5),a表示舵機轉(zhuǎn)動角度,t為脈沖寬度,0.5≤t≤2.5。

        3.2 舵機控制信號5路PWM的實現(xiàn)

        單片機外部時鐘為 11.059 2 MH,定時器0初始化為使用外部時鐘8分頻,8位自動重裝,并使能。配置TL0=0x94;TH0=0x94;對應周期為 20 ms。配置交叉開關將單片機自帶的5路PWM分別對應單片機的P12—P16管腳。PCA初始化函數(shù)可配置如下。

        void PCA_Init()

        {

        PCA0CN=0x40;//使能PCA

        PCA0MD&=~0x40;//禁止看門狗定時器

        PCA0MD=0x04;//PCA時鐘使用定時器0溢出,周期 20 ms。

        PCA0CPM0=0x42;//選擇8位脈寬調(diào)制模式,并使能。

        PCA0CPM1=0x42;PCA0CPM2=0x42;

        PCA0CPM3=0x42;PCA0CPM4=0x42;

        PCA0CPH0=0xEC;//配置占空比使脈沖寬度位 1.5 ms,對應舵機默認角度為90°

        PCA0CPH1=0xEC;PCA0CPH2=0xEC;

        PCA0CPH3=0xEC;PCA0CPH4=0xEC;

        }

        PCA設置為8位脈寬調(diào)制時,占空比的計算公式為:dutycycle=[(256-PCA0CPHn)]/256

        舵機0~180°(0.5~2.5ms)對應 20 ms 周期的占空比為2.5%~12.5%,對應的PCA0CPHn取值范圍為249~224,可以計算出若采用上述PCA配置的舵機角度控制精度約為7°。程序可以通過改變設置PCA時鐘或者使用16位脈寬調(diào)制來提高對舵機的控制精度。

        舵機控制信號的周期為 20 ms,而高電平的時間最多使用到 2.5 ms,則可以通過分時復用的方式,在PWM中斷服務函數(shù)中循環(huán)設定PWM的PCA0CPHn寄存器值,配合外部分離電路,即可將1路PWM分離出8路PWM信號[14],單片機自帶的PWM模塊越多,可擴展的PWM信號也越多,但是需要PWM信號分離硬件電路,對信號進行分離。

        3.3 74HC595擴展8路模擬PWM的實現(xiàn)

        74HC595是一種帶鎖存功能的8位串入、并出移位寄存器,常用于擴展單片機的I/O口,節(jié)約單片機端口資源[15]。74HC595在每個CLK的上升沿,串行數(shù)據(jù)從SI輸入移位寄存器,高位在前,低位在后。依次完成8位數(shù)據(jù)輸入后,若/G為低電平輸出使能,同時給RCK一個上升沿,數(shù)據(jù)就會進入鎖存器從QA-QH輸出。

        通過單片機的P22、P23、P24、P25端口(圖5,U4),配合單片機定時器2的定時中斷服務來實現(xiàn)74HC595擴展8路模擬PWM信號的輸出。定時器2開始計時前,74HC595的SI、CLK、RCK、/G均初始化為0。單片機系統(tǒng)時鐘配置為外部時鐘4倍頻,定時器2時鐘配置為使用系統(tǒng)時鐘,定時器2配置為16位自動重裝模式,定時周期為 100 μs,即每0.1 ms進1次中斷服務函數(shù)。定時器2的定時中斷服務函數(shù)如下:

        count[14]={15,15,15,15,15,15,15,15,0xEC,0xEC,0xEC,0xEC,0xEC,50};//默認90°

        void TIMER2_ISR(void)interrupt 5

        {

        Staticxdata unsigned char i=0,j,out=0xff,outbuf=0;

        TF2H=0;//清中斷標志位

        i++;

        for(j=0;j<8;j++)

        {

        if(i==count[j])out&=~(1<

        }

        if(i==200)//20ms時間到

        {

        i=0;out=0xff;

        }

        if(outbuf!=out)

        {

        outbuf=out;

        for(j=8;j>0;j--)

        {

        if(outbuf&0x80)SI=1;

        else SI=0;//P25管腳

        CLK=1;//P22管腳

        CLK=0;//P22管腳

        outbuf<<=1;

        }

        outbuf=out;

        RCK=1;//P23管腳

        RCK=0;//P23管腳

        }

        }

        其中count[]數(shù)組前8個數(shù)據(jù)保存的是74HC595擴展接口舵機的脈沖寬度值,取值范圍為5~25,對應脈沖寬度為0.5~2.5 ms。后5個數(shù)據(jù)保存的是5路PCA寄存器的設定值,最后一個數(shù)據(jù)保存的是蜂鳴器的鳴響頻率。程序通過修改count[]數(shù)組的值來改變舵機的角度。因定時器2定時周期為 100 μs,步進值為 0.1 ms,可計算得出對舵機的控制精度為9°,程序可以縮小定時器的定時周期來提高舵機的控制精度,定時器的定時周期需要綜合考慮程序運行時間即其他功能模塊的優(yōu)先級等來確定。

        若將74HC595的輸出使能端口/G始終接低電平,復位端/CLEAR始終接高電平,則1片74HC595只需單片機的3個管腳來控制,若將多片74HC595的串行數(shù)據(jù)輸入端SI并聯(lián),移位時鐘CLK也并聯(lián),只有鎖存時鐘RCK單獨控制,則單片機的每8個端口可以通過6片74HC595擴展出48路模擬PWM信號控制舵機[16]。但是此種方式適用于對舵機進行分組控制,每組舵機的轉(zhuǎn)動角度一致;若要實現(xiàn)對單個舵機的控制,軟件算法相對復雜,程序效率低。

        3.4 串口通信協(xié)議的設計

        多路舵機控制器使用C8051F340單片機的UART1通過RS422總線與上位機通信。上位機通過直接發(fā)送舵機的編號(控制命令)和需要舵機轉(zhuǎn)動的角度(控制數(shù)據(jù))給控制器即可實現(xiàn)對舵機的單獨控制,具體的協(xié)議幀格式如表1所示。

        表1 接收和發(fā)送的幀格式Tab.1 Format of frames received and transmitted

        例如要控制DJ3號舵機轉(zhuǎn)動140°,上位機可以通過RS422總線發(fā)送數(shù)據(jù)幀:0x55 0xAA 0x91 0x03 0x8C 0x8E即可。

        3.5 系統(tǒng)程序流程

        多路舵機控制器程序流程為:1)單片機上電后首先進行設備初始化,包括系統(tǒng)時鐘、PCA、定時器、I/O口、AT24C01/SMBus、串口、中斷使能及優(yōu)先級、74HC595控制的初始化及RS422總線發(fā)送禁止等;2)通過讀寫一個字節(jié)數(shù)據(jù)來測試AT24C01工作是否正常,若不正常蜂鳴器報警等待處理;3)將最后一次保存在AT24C01中的舵機控制數(shù)據(jù)讀回,恢復count數(shù)組的值,同時對PCA0CPH0寄存器進行賦值,以實現(xiàn)所有舵機恢復到掉電前的狀態(tài);4)判斷上位機是否有協(xié)議幀到來;5)若接收到完整的協(xié)議幀,則解析控制命令,通過對應的控制數(shù)據(jù)控制對應舵機轉(zhuǎn)動,返回到第4步循環(huán)。具體的主程序流程圖如圖7所示。

        圖7 主程序流程Fig.7 Main program flow chart

        4 結 語

        選用C8051F340單片機作為舵機控制器的主控芯片,芯片本身自帶5路捕捉/比較模塊及可編程計數(shù)器定時器陣列PCA,可以分別編程輸出5路PWM波形控制5路舵機。再通過選用1片74HC595串入并出移位寄存器,能將C8051F340單片機的4個普通I/O口擴展為8個I/O口,可以模擬出8路PWM信號控制8路舵機,有效節(jié)約單片機寶貴的I/O口資源??刂破髟O計有RS422串行總線接口,能快速組網(wǎng),配合上位機可實現(xiàn)多路舵機的網(wǎng)絡控制。

        實際測試讓13路舵機循環(huán)轉(zhuǎn)動,每次轉(zhuǎn)動20°,2種控制模式控制的舵機均能正常轉(zhuǎn)動,說明對舵機控制精度與設計的控制精度相符。程序可以通過降低定時器2定時周期,提高PCA時鐘或者采用16位脈寬調(diào)制模式來提高對舵機的控制精度。另外值得注意的是,當多路舵機同時工作時,電源功率必須滿足舵機的功率需求,否則舵機會出現(xiàn)抖動現(xiàn)象。本控制器的硬件設計能有效節(jié)約單片機I/O口資源用于更多傳感器的接入、擴展CAN總線接口,USB接口以適應不同的總線接口需求。

        猜你喜歡
        控制精度管腳蜂鳴器
        基于多源異構信息融合的采摘機械臂驅(qū)動控制研究
        電動自行車產(chǎn)品車速提示音檢測現(xiàn)狀和整改技術研究(2)
        掌控板制作簡易鋼琴
        電腦報(2020年12期)2020-06-30 19:56:42
        單片機驅(qū)動蜂鳴器的程序設計
        MW級太空發(fā)電站微波能量波束指向控制精度分析
        基于安卓的智能車轉(zhuǎn)速系統(tǒng)的設計與實現(xiàn)
        基于圖像處理的異型電子元器件管腳偏移誤差檢測方法研究
        豐田凱美瑞240V車間隙警告蜂鳴器異常鳴響
        CMOS數(shù)字IC管腳電容的估算與測量
        IPC在ZJ17卷煙機重量控制系統(tǒng)中的應用
        一个人的视频免费播放在线观看 | 日韩麻豆视频在线观看| 国产日产亚洲系列最新| 国产一女三男3p免费视频| 麻豆国产av尤物网站尤物| 欧美性受xxxx黑人xyx性爽| 亚洲无线码一区在线观看| 精品国产亚洲av成人一区| 青青草小视频在线观看| 女的扒开尿口让男人桶30分钟 | 乱子伦av无码中文字幕| 国产精品日本一区二区三区| 亚洲天堂av一区二区三区不卡| 乱子轮熟睡1区| 欧美亚洲日韩国产人成在线播放| 91亚洲欧洲日产国码精品| 蜜桃在线高清视频免费观看网址| 亚洲av日韩av女同同性| 又色又污又爽又黄的网站| 国产精品久久久久久久y| 国产麻豆一区二区三区在| 久久精品国产亚洲av麻豆会员| аⅴ资源天堂资源库在线| 囯产精品无码一区二区三区| 蜜桃激情视频一区二区| 18禁止看的免费污网站| 国产午夜精品一区二区三区嫩草| 国产日韩欧美在线| 国产一区二区三区免费精品| 中文字幕亚洲高清视频| 成年女人黄小视频| 一本大道东京热无码中字 | 国产少妇露脸精品自拍网站| 风韵少妇性饥渴推油按摩视频| 亚洲欧美日韩综合久久久| 国产精品香蕉网页在线播放| 亚洲精品久久视频网站| 粗大猛烈进出高潮视频| 久久99精品国产99久久| 亚洲av乱码国产精品色| 国产亚洲精品av久久|