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

?

基于MSP430的四旋翼飛行器的S—BUS通信協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)

2018-05-23 09:45:18張雨辰孫琛林奎秦生輝

張雨辰 孫琛 林奎 秦生輝

【摘 要】四旋翼飛行器在軍事領(lǐng)域和生產(chǎn)運(yùn)營(yíng)監(jiān)管領(lǐng)域有著廣闊的應(yīng)用前景。此外,四旋翼還可應(yīng)用在政府應(yīng)急指揮領(lǐng)域和公共安全領(lǐng)域,在處置大規(guī)模群體性事件或跟蹤以及偵查活動(dòng)時(shí),啟動(dòng)飛行器可及時(shí)準(zhǔn)確監(jiān)控現(xiàn)場(chǎng)情況。

【Abstract】The four rotor aircraft has broad application prospects in military field and production operation supervision area. In addition, the four rotor can also be used in the field of government emergency command and public security. When dealing with large-scale mass incidents or tracking and detection activities, launching the aircraft can monitor the scene timely and accurately.

【關(guān)鍵詞】四旋翼;msp430;S-BUS

【Keywords】four rotor; msp430; S-BUS

【中圖分類號(hào)】V249.1 【文獻(xiàn)標(biāo)志碼】A 【文章編號(hào)】1673-1069(2018)04-0187-02

1 引言

四旋翼機(jī)器人是一種靈巧的、電動(dòng)的、可以垂直起降的,能夠遙控或自主飛行并執(zhí)行任務(wù)的一種空中機(jī)器人。四旋翼機(jī)器人具有4個(gè)螺旋槳并呈十字形交叉結(jié)構(gòu),相隔的螺旋槳為一組,兩組的旋轉(zhuǎn)方向不同,相鄰兩個(gè)螺旋槳旋轉(zhuǎn)方向不同來抵消水平反扭力矩,保證自身不發(fā)生自旋。與其它空中機(jī)器人相比,其靈活性體現(xiàn)在只通過改變螺旋槳的速度就可以執(zhí)行飛行任務(wù)。

本課題采用msp430g2553作為主要控制系統(tǒng),通過使用C語(yǔ)言編寫程序,使用S-BUS協(xié)議實(shí)現(xiàn)對(duì)飛機(jī)的通信。選用msp430微控制器作為控制系統(tǒng)是因?yàn)樵撓盗锌刂破饕呀?jīng)廣泛用于家用電器和工業(yè)控制之中,而且價(jià)格便宜,易于購(gòu)買和自主設(shè)計(jì)。微控制器系統(tǒng)降低了外圍硬件設(shè)備的投資,省去了遙控器等設(shè)備的麻煩,無論是日常生活還是工業(yè)生產(chǎn)也都會(huì)隨之更加的方便。

2 S-BUS概況

Futaba S-BUS通信協(xié)議是一種用來控制舵機(jī)的串口通信協(xié)議。最多可以包含16個(gè)舵機(jī)的數(shù)據(jù),它是由經(jīng)典的RS232串口通信協(xié)議發(fā)展過來的,邏輯取反。它的長(zhǎng)度為25字節(jié),每字節(jié)包括1位起始位0,8位數(shù)據(jù)位,1位奇偶校驗(yàn)位(若8為數(shù)據(jù)位中有奇數(shù)個(gè)1,則奇偶校驗(yàn)位取1,若有偶數(shù)個(gè)1則奇偶校驗(yàn)位取0),2位結(jié)束位11。信號(hào)周期為14毫秒,其中前3毫秒是數(shù)據(jù),后11毫秒是延時(shí),置低電平。用來發(fā)送數(shù)據(jù)的3毫秒中,共發(fā)送25*(1+8+1+2)=300位數(shù)據(jù),也就是說,每位數(shù)據(jù)(高或低電平)持續(xù)10微秒的時(shí)間。

該協(xié)議有25個(gè)字節(jié)。其中第一個(gè)字節(jié)是起始字節(jié),然后是22個(gè)包含數(shù)據(jù)的字節(jié),最后是一個(gè)標(biāo)志字節(jié)和結(jié)束字節(jié)。起始字節(jié)中的8位數(shù)據(jù)位為11110000b,即完整起始字節(jié)為011110000011b。標(biāo)志字節(jié)可根據(jù)不同飛控自行設(shè)定,用于承載除了舵機(jī)數(shù)據(jù)以外的數(shù)據(jù)。結(jié)束字節(jié)中的數(shù)據(jù)位為00000000b。

協(xié)議中有22個(gè)包含數(shù)據(jù)的字節(jié),每個(gè)字節(jié)數(shù)據(jù)位為8位,22*8=16*11,也就是說每個(gè)舵機(jī)的數(shù)據(jù)長(zhǎng)度為11位。實(shí)際傳輸時(shí)需要把16個(gè)舵機(jī)數(shù)據(jù)填入22個(gè)包含數(shù)據(jù)的字節(jié)中,填入方式為第一個(gè)字節(jié)的8位和第二個(gè)字節(jié)的前3位為第一舵機(jī),其中第一字節(jié)8位中的最高位為舵機(jī)的最低位,第二字節(jié)的從最高位數(shù)第三位為舵機(jī)的最高位。第二個(gè)字節(jié)的后5位和第三個(gè)字節(jié)的前6位為第二舵機(jī),以此類推。

3 S-BUS在MSP430中的實(shí)現(xiàn)

程序主要由發(fā)送數(shù)據(jù)和接受數(shù)據(jù)2個(gè)模塊組成。流程如下所示:

3.1 發(fā)送數(shù)據(jù)

MSP430單片機(jī)不能對(duì)字節(jié)進(jìn)行操作,因此將待發(fā)送或接收數(shù)據(jù)的每一位依次和要使用的I/O口進(jìn)行與操作,從而實(shí)現(xiàn)信號(hào)的發(fā)送與接收。具體做法是根據(jù)配置的波特率,使用時(shí)鐘定時(shí)改變管腳電平的高低,達(dá)到發(fā)送二進(jìn)制數(shù)據(jù)的目的。因?yàn)镾-BUS的邏輯電平是反的,所以高電平為0,低電平為1。

發(fā)送數(shù)據(jù)時(shí),程序首先發(fā)送一個(gè)起始字節(jié)0xF0,然后按S-BUS的規(guī)則將每個(gè)通道拆分成各個(gè)數(shù)據(jù)字節(jié)(在本文使用的程序中通過改變I\O口的電平模擬數(shù)據(jù)位的發(fā)送)。發(fā)送數(shù)據(jù)字節(jié)流程如下:

程序首先發(fā)送一個(gè)起始位(高電平),然后將通道1的低8位放到第一個(gè)數(shù)據(jù)字節(jié),將通道1的高3位放到第二個(gè)數(shù)據(jù)字節(jié)的低3位,以此類推計(jì)算出每個(gè)數(shù)據(jù)字節(jié)并發(fā)送。當(dāng)每一個(gè)數(shù)據(jù)字節(jié)中的數(shù)據(jù)位發(fā)送完后,計(jì)算偶校驗(yàn)位并發(fā)送,最后發(fā)送停止位(低電平)。之后程序繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)字節(jié),直到22個(gè)數(shù)據(jù)字節(jié)發(fā)送完成。

數(shù)據(jù)字節(jié)全部發(fā)送完成后,程序?qū)l(fā)送標(biāo)志字節(jié)flags,最后發(fā)送結(jié)束字節(jié)0x00。flags的內(nèi)容為:flags = bit7 = ch17 = digital channel (0x80)

bit6 = ch18 = digital channel (0x40)

bit5 = Frame lost, equivalent red LED on receiver (0x20)

bit4 = failsafe activated (0x10)

bit3 = n/a

bit2 = n/a

bit1 = n/a

bit0 = n/a

3.2 接收數(shù)據(jù)

接收數(shù)據(jù)時(shí),程序先收到一個(gè)起始字節(jié),據(jù)此判斷新的一幀開始。然后將收到的22個(gè)數(shù)據(jù)字節(jié)解析出來。一種方法是,根據(jù)發(fā)送時(shí)的計(jì)算方式,反過來將每個(gè)字節(jié)通過左移或右移運(yùn)算之后,相應(yīng)位上按位與1,達(dá)到解析的目的。由于通道數(shù)較少,故可以用這樣一種較為取巧的方式。如果偶校驗(yàn)位錯(cuò)誤,則請(qǐng)求重新發(fā)送這一字節(jié)。之后將解析出的16個(gè)通道的數(shù)據(jù)傳遞給飛控,查看標(biāo)志位的內(nèi)容,最后接收到結(jié)束字節(jié),一幀結(jié)束,等待接收下一幀。

以第一、第二個(gè)通道為例,當(dāng)接收到第一個(gè)和第二個(gè)數(shù)據(jù)字節(jié)時(shí),將第一個(gè)數(shù)據(jù)字節(jié)右移3位后,按位與00011111111,將結(jié)果存入buffer_1,第二個(gè)數(shù)據(jù)字節(jié)左移8位后,按位與11100000000,將結(jié)果存入buffer_2,再讓buffer_1按位與buffer_2即可得到第一個(gè)通道的數(shù)據(jù)。同理,將第二個(gè)數(shù)據(jù)字節(jié)右移6位后,按位與00000011111,將結(jié)果存入buffer_3,第三個(gè)數(shù)據(jù)字節(jié)左移2位后,按位與11111100000,將結(jié)果存入buffer_4,再讓buffer_3按位與buffer_4即可得到第二個(gè)通道的數(shù)據(jù)。

4 結(jié)語(yǔ)

本文對(duì)S-BUS協(xié)議的環(huán)境設(shè)置以及具體的數(shù)據(jù)結(jié)構(gòu)進(jìn)行了說明,并給出了S-BUS在MSP430上的實(shí)現(xiàn)。本系統(tǒng)進(jìn)一步完善的話,可以將解析通道的部分用一個(gè)更好的算法替代本文的移位算法。可以看到S-BUS是一種簡(jiǎn)單的四旋翼通信協(xié)議,同時(shí)16個(gè)通道也較好地滿足了四旋翼飛行器對(duì)信號(hào)傳輸?shù)男枨蟆?/p>

天全县| 富民县| 开江县| 宁远县| 万年县| 兴安盟| 叶城县| 紫金县| 时尚| 固镇县| 尖扎县| 深圳市| 阜新| 营口市| 莆田市| 宝丰县| 常宁市| 深圳市| 广安市| 水富县| 神农架林区| 华阴市| 宣威市| 萨迦县| 古丈县| 新野县| 专栏| 武宣县| 临江市| 锦屏县| 临漳县| 岳阳县| 策勒县| 平舆县| 通渭县| 宁化县| 色达县| 比如县| 安龙县| 札达县| 石阡县|