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

        ?

        基于Linux串口通信的雷達(dá)天線數(shù)據(jù)交互設(shè)計(jì)

        2012-04-29 02:38:49曲成華
        電腦知識(shí)與技術(shù) 2012年12期
        關(guān)鍵詞:串口通信雷達(dá)

        曲成華

        摘要:雷達(dá)天線的控制系統(tǒng)與雷達(dá)任務(wù)處理系統(tǒng)之間的通信多采用串口通信方式,交互的內(nèi)容包括雷達(dá)天線方位、狀態(tài)和對(duì)天線的控制命令等。該文先介紹了串口及l(fā)inux串口設(shè)備文件,然后詳細(xì)設(shè)計(jì)了Linux系統(tǒng)下的串口編程以及需要注意的相關(guān)參數(shù)設(shè)置。經(jīng)長(zhǎng)期運(yùn)行證明,該設(shè)計(jì)能夠滿足數(shù)據(jù)交互的要求并具有相當(dāng)高的可靠性。

        關(guān)鍵詞:Linux系統(tǒng);串口通信;串口設(shè)置;雷達(dá);天線方位

        中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)12-2908-04

        Design of the Radar Azimuth Data Exchange Based on Serial Conminucation in Linux

        QU Cheng-hua

        (The 38thResearch Institute of CETC, Hefei 230088, China)

        Abstract: The communication between radar antenna control system and radar-tasking system ulually uses serial communication; the inter? action data includes radar antenna azimuth, status and the radar antenna control commands, etc. This paper described the seial ports and Linux serial device file, and then designed Linux system serial programming, as well as the need to pay attention to the relevant parameter settings. It is proved this design could meet the requirements of data exchange and had a very high reliability.

        Key words: Linux system ; serial port data communation; serial port set; radar antenna; azimuth

        在某海關(guān)監(jiān)視雷達(dá)中,雷達(dá)天線的控制系統(tǒng)與雷達(dá)任務(wù)處理系統(tǒng)之間需要采用串口通信方式,且為滿足系統(tǒng)長(zhǎng)時(shí)間工作的需要,要求任務(wù)處理系統(tǒng)運(yùn)行在Linux操作系統(tǒng)。任務(wù)處理系統(tǒng)需要實(shí)時(shí)接收雷達(dá)天線當(dāng)前方位和狀態(tài)信息,并發(fā)送天線控制命令給天線控制系統(tǒng)。本雷達(dá)的總體設(shè)計(jì)中,信號(hào)處理系統(tǒng)生成的雷達(dá)點(diǎn)跡情報(bào)沒有方位信息,這就要求任務(wù)處理系統(tǒng)接收的方位信息間隔非常短,經(jīng)綜合考慮和多次實(shí)驗(yàn),確定天線方位的數(shù)據(jù)周期為15毫秒,因此需要對(duì)linux系統(tǒng)下的串口通信進(jìn)行優(yōu)化設(shè)計(jì)以滿足高數(shù)據(jù)率的要求。

        1串口簡(jiǎn)介

        串行接口簡(jiǎn)稱串口,也稱為串行通信接口,是采用串行通行方式的擴(kuò)展接口,數(shù)據(jù)一位一位地順序傳送,其特點(diǎn)是通信線路簡(jiǎn)單,并可以利用電話線進(jìn)行遠(yuǎn)距離通信,但是傳送速度較慢。根據(jù)信息的傳送方向,串行通信可以進(jìn)一步分為單工、半雙工和全雙工三種。串口通信具有兩種最基本的方式:同步串行通信方式和異步串行通信方式。串行接口按電氣標(biāo)準(zhǔn)分為RS-232-C、RS-422、RS485等,這種分類方法僅對(duì)接口的電氣特性作出規(guī)定,不涉及接插件、電纜或協(xié)議。由于串口(COM)不支持熱插拔及傳輸數(shù)率較低,目前串口多用于工控和測(cè)量設(shè)備以及部分通信設(shè)備中。

        2 Linux串口設(shè)備文件

        Linux的文件系統(tǒng)是操作系統(tǒng)的重要組成部分之一,和其他操作系統(tǒng)一樣用于管理和存儲(chǔ)文件。Linux將所有的軟件、硬件都作為文件來管理,每個(gè)文件被保存在特定的目錄中,目錄中還可以包含子目錄,子目錄中還可以包含文件和其他子目錄。Linux有四種基本的文件類型:普通文件、目錄文件、設(shè)備文件、連接和特殊文件。Linux將所有的設(shè)備都用文件來表示,大多數(shù)設(shè)備文件都放在/dev目錄中,它們的內(nèi)容就是所有設(shè)備名的一個(gè)完整清單。這里,設(shè)備名Hd代表IDE硬盤驅(qū)動(dòng)器,sd代表SCSI硬盤驅(qū)動(dòng)器,sr代表SCSI CD-ROM驅(qū)動(dòng)器,fd代表軟盤驅(qū)動(dòng)器,tty代表終端,lp代表打印機(jī)。ttySN就表示第N個(gè)串口。對(duì)串口的操作也就是對(duì)串口設(shè)備文件的操作,如open()、read()、write()、close()等。Linux內(nèi)核提供給用戶進(jìn)程一個(gè)設(shè)備節(jié)點(diǎn),如/dev/ttyS0,并提供標(biāo)準(zhǔn)的文件系統(tǒng)接口,用戶可以用操作普通文件一樣操作終端設(shè)備;用戶的操作必須經(jīng)過稱為終端行規(guī)范( terminal line discipline)的模塊中進(jìn)行規(guī)范處理;最后終端設(shè)備對(duì)應(yīng)的驅(qū)動(dòng)程序?qū)K端設(shè)備進(jìn)行操作。

        3通信編程設(shè)計(jì)

        本節(jié)首先結(jié)合該海關(guān)雷達(dá)的總體設(shè)計(jì)進(jìn)行數(shù)據(jù)流程設(shè)計(jì),然后對(duì)終端標(biāo)準(zhǔn)接口進(jìn)行解釋,最后給出Linux系統(tǒng)串口編程的一般步驟和關(guān)鍵的軟件代碼。

        3.1數(shù)據(jù)處理流程設(shè)計(jì)

        在該雷達(dá)中,任務(wù)處理系統(tǒng)通過CPCI總線從信號(hào)處理分系統(tǒng)中獲取點(diǎn)跡信息,該點(diǎn)跡信息不具有方位信息,需要任務(wù)處理系統(tǒng)在收到點(diǎn)跡時(shí)根據(jù)當(dāng)前的天線方位給點(diǎn)跡方位賦值,因此要求任務(wù)處理系統(tǒng)接收的方位信息間隔非常短才能有效的降低點(diǎn)跡方位誤差??紤]Linux系統(tǒng)是多用戶多任務(wù)的操作系統(tǒng),設(shè)計(jì)獨(dú)立的線程來進(jìn)行天線方位處理,從串口中讀取數(shù)據(jù)并進(jìn)行報(bào)文解釋處理,在每成功取得一組天線方位數(shù)據(jù)后,線程休眠15毫秒,釋放CPU資源給其他進(jìn)程和線程處理。

        termios結(jié)構(gòu)共5個(gè)成員變量,其中c_iflag用來控制終端設(shè)備驅(qū)動(dòng)程序的輸入,c_oflag用來控制驅(qū)動(dòng)程序的輸出,c_cflag用來描述基本的終端硬件控制,c_lflag控制驅(qū)動(dòng)程序與用戶之間的接口,c_cc數(shù)組定義特殊控制字符,控制串口的元數(shù)個(gè)數(shù)。

        串口操作的主要控制函數(shù)如表1所示。其中tcgetattr和tcsetattr函數(shù)中返回的結(jié)果就是termios類型,tcgetattr函數(shù)用于獲取終端的相關(guān)參數(shù),tcsetattr函數(shù)則用于設(shè)置終端參數(shù)。這些函數(shù)提供了對(duì)串口的有效控制和操作,完成串口設(shè)備數(shù)據(jù)傳輸處理功能。

        在設(shè)置串口屬性時(shí)需要取出原屬性,如果要設(shè)置某個(gè)選項(xiàng),那么就使用"|="運(yùn)算,如果關(guān)閉某個(gè)選項(xiàng)就使用"&="和"~"運(yùn)算。

        表1串口操作函數(shù)

        3.3.1打開串口

        在Linux中,打開串口設(shè)備和打開普通文件一樣,使用的是open函數(shù)。串口名從ttyS0開始依次為ttyS1、ttyS2等。在本程序中,使用ttyS0作為通信串口。

        iDeviceID = open("/dev/ttyS0", O_RDWR | O_NOCTTY |O_NDELAY);

        "/dev/ttyS0"表示打開串口ttyS0;選項(xiàng)O_RDWR表示可以進(jìn)行讀操作和寫操作,O_NOCTTY表示不能把本串口當(dāng)成控制終端,否則用戶的鍵盤輸入信息將影響程序的執(zhí)行;O_NDELAY表示打開串口的時(shí)候不關(guān)心DCD信號(hào)線狀態(tài),即不關(guān)心另一端的串口是否在使用中,否則會(huì)在DCD信號(hào)線為低電平時(shí)停止。

        3.3.2設(shè)置串口屬性

        串口打開后還需要對(duì)串口進(jìn)行屬性配置即對(duì)termios結(jié)構(gòu)體中的成員進(jìn)行設(shè)置才能正常傳輸和接收數(shù)據(jù)。總體原則是傳輸方式設(shè)置為原始方式以實(shí)現(xiàn)實(shí)時(shí)通信,不對(duì)輸入和輸出字符進(jìn)行任何處理,不等待字符匯聚成一行,而是立即讀寫串口。在設(shè)置串口屬性前,需要保留原來的串口設(shè)置屬性,以便在關(guān)閉串口前恢復(fù)。

        串口設(shè)置的屬性主要包括波特率、數(shù)據(jù)位、停止位、校驗(yàn)位和其他一些屬性。

        1)波特率設(shè)置

        在串口傳輸中,用波特率來表示傳輸?shù)乃俣龋?波特表示在1秒鐘內(nèi)可以傳輸1個(gè)比特。波特率有B115200,B57600,B38400,B19200,B9600,B4800,B2400,B1200,B600,B300等多種常用的選項(xiàng),需要對(duì)輸入和輸出的波特率進(jìn)行設(shè)置。獲得端口波特率信息是通過cfgetispeed函數(shù)和cfgetospeed函數(shù)來實(shí)現(xiàn)的,設(shè)置端口的輸入/輸出波特率是通過cfsetispeed函數(shù)和cfsetospeed函數(shù)來實(shí)現(xiàn)。一般情況下,輸入和輸出波特率是相等的。函數(shù)原型如下所示

        3.3.3數(shù)據(jù)接收與發(fā)送

        接收數(shù)據(jù)只需調(diào)用read函數(shù)即可。Ret = read (iDeviceID,buf,N); N表示一次讀取的數(shù)據(jù)個(gè)數(shù)。串口默認(rèn)的打開方式是非阻塞的,因此本函數(shù)只是接收緩沖中的數(shù)據(jù),而并非直接操作IO。如果緩沖中有接收到的數(shù)據(jù),那么本函數(shù)將返回實(shí)際接收到的數(shù)據(jù)長(zhǎng)度,當(dāng)然不會(huì)超過指定的N個(gè)字節(jié)。如果緩沖中沒有數(shù)據(jù),那么將返回0。如果接收失敗,那么將返回-1,錯(cuò)誤代碼放在errno中。

        發(fā)送數(shù)據(jù)只需調(diào)用write函數(shù)即可。ret = write(iDeviceID,buf,N);返回值表示實(shí)際發(fā)送的數(shù)據(jù)長(zhǎng)度。

        3.3.4串口屬性還原和關(guān)閉串口

        在使用完串口后,需要還原串口原有的屬性并關(guān)閉串口,設(shè)置如下所示。

        猜你喜歡
        串口通信雷達(dá)
        有雷達(dá)
        大自然探索(2023年7期)2023-08-15 00:48:21
        DLD-100C型雷達(dá)測(cè)試方法和應(yīng)用
        電子制作(2019年15期)2019-08-27 01:12:02
        雷達(dá)
        基于Qt和Flash的嵌入式Linux軟件架構(gòu)設(shè)計(jì)
        串口通信在智能家居監(jiān)控系統(tǒng)中的應(yīng)用
        基于OpenCV的室內(nèi)照明智能控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        科技視界(2016年13期)2016-06-13 22:01:19
        基于空時(shí)二維隨機(jī)輻射場(chǎng)的彈載雷達(dá)前視成像
        基于AA的多通道雷達(dá)自適應(yīng)抗干擾方法
        現(xiàn)代“千里眼”——雷達(dá)
        基于MSP430單片機(jī)的窄帶無線數(shù)據(jù)傳輸模塊的設(shè)計(jì)
        成人影院yy111111在线| 亚洲小少妇一区二区三区| 91偷自国产一区二区三区| 少妇伦子伦精品无吗| 无码精品黑人一区二区三区| 欧美激情国产一区在线不卡| 国产亚洲一区二区精品| 九九在线中文字幕无码| 越猛烈欧美xx00动态图| 精品熟女少妇免费久久| 国产一区二区杨幂在线观看性色 | 欧美伦费免费全部午夜最新| 国产在线精品欧美日韩电影| 一区二区三区放荡人妻| 久久中文字幕av一区二区不卡| 亚洲国产日韩a在线乱码| 中国老妇女毛茸茸bbwbabes| 久热爱精品视频在线观看久爱 | 精品视频在线观看一区二区三区| 久久精品国产一区老色匹| 久久久亚洲av波多野结衣| 成年无码av片完整版| 精品久久久久久电影院| 亚洲av资源网站手机在线| 国产欧美va欧美va香蕉在| 国产小受呻吟gv视频在线观看| 欧洲一级无码AV毛片免费| 91精品国产综合久久久蜜| 色妞色视频一区二区三区四区| 国产高级黄区18勿进一区二区| 精品国产一区二区三区男人吃奶| 青青草精品视频在线播放| 亚洲av无码精品色午夜在线观看 | 欧美mv日韩mv国产网站| 国产又爽又黄又不遮挡视频| 久久精品中文字幕有码| 久久久久久曰本av免费免费| 中文毛片无遮挡高潮| 国产高清在线精品一区不卡| 亚洲av日韩av永久无码下载| 亚洲中文字幕无码中字|