• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    串口通信與網(wǎng)絡(luò)通信的應(yīng)用研究

    2013-04-29 20:05:48潘紅娜蔡振興
    中國(guó)新通信 2013年8期
    關(guān)鍵詞:基本原理網(wǎng)絡(luò)通信字符

    潘紅娜 蔡振興

    一、串口通信

    1.1 Linux下串口通信基本原理

    Linux系統(tǒng)將設(shè)備和文件的操作都作為對(duì)文件的處理,所以對(duì)設(shè)備的操作,內(nèi)核會(huì)返回一個(gè)文件描述符,需要將其作為參數(shù)傳給相對(duì)應(yīng)的函數(shù)。Linux中所有的設(shè)備文件都放在“/dev”目錄下,通過(guò)“ttyS+編號(hào)”命名相應(yīng)的串口資源,所以對(duì)應(yīng)路徑是“/devttyS*”。因而可以相對(duì)文件讀寫(xiě)那樣訪問(wèn)一個(gè)串口設(shè)備。

    1.2 Linux下的串口設(shè)置

    首先要對(duì)串口進(jìn)行設(shè)置,在termios.h完成對(duì)波特率等的設(shè)置。

    struct termios

    {tcflag t c iflag;

    tcflag t c oflag;

    tcflag t c cflag;

    tcflag t c lflag;

    cc t c cc [NCCS];

    };

    open( )函數(shù):int fd = open ("/dev/ttyS *", O RDWR|O NOCTTY|O NDELA Y);

    然后調(diào)用read( )和write( )函數(shù)讀寫(xiě)端口,返回實(shí)際讀寫(xiě)的字節(jié)數(shù),如果有錯(cuò)誤發(fā)生則返回-1。

    讀取串口結(jié)束后,首先恢復(fù)串口原始屬性,然后才可以關(guān)閉串口并退出程序。

    1.3 串口控制應(yīng)用程序

    下面給出通過(guò)串口控制攝像頭函數(shù)的一部分結(jié)構(gòu):

    void sendMsg(int pan,int tilt)

    {struct timeval timeout;

    static char *driver = "/dev/ttyS1";

    timeout.tv_sec = 0;

    timeout.tv_usec = 0;

    formCmd(buf,pan,tilt);

    fd = uart_open(driver,B9600);

    write(fd,buf,16);

    close(fd);

    }

    二、網(wǎng)絡(luò)通信

    2.1 Socket基本原理介紹

    Socket是一種通信機(jī)制,客戶/服務(wù)器系統(tǒng)既可以在本地單機(jī)上運(yùn)行,也可以在網(wǎng)絡(luò)中運(yùn)行。

    首先需要了解socket中的一些重要函數(shù):(1)創(chuàng)建Socket:int socket( intdomain, inttype, intprotocol);(2)配置Socket:bind函數(shù)指定本地信息int bind( intsocket, const structsockaddr* address, size_taddress_len);(3)使用listen( )和accept( )函數(shù)獲取遠(yuǎn)端信息:Int listen(int socket, int backlog);Int accept(int socket, struct sockaddr* address, size_t* address_len);(4)通信處理:send( ),write( ),recv( ),read( )。(5) 通信結(jié)束:使用closesocket( )。

    2.2 Windows和Linux下socket應(yīng)用程序

    客戶端程序:創(chuàng)建一個(gè)未命名的套接字,然后把它連接到服務(wù)器套接字server_socket上,向服務(wù)器寫(xiě)一個(gè)字符,再讀回經(jīng)服務(wù)器處理后的一個(gè)字符。

    服務(wù)器端程序:首先創(chuàng)建一個(gè)服務(wù)器套接字,綁定到一個(gè)名字,然后創(chuàng)建一個(gè)監(jiān)聽(tīng)隊(duì)列,接收來(lái)自客戶程序的連接。下面我們分別在Windows和Linux下進(jìn)行socket編程,實(shí)現(xiàn)二者之間的通信,具體函數(shù)實(shí)現(xiàn)的主要部分如下:

    Windows下作為client端:

    {

    SocketClient=socket(AF_INET,SOCK_STREAM,0);

    addrSrv.sin_addr.S_un.S_addr=inet_addr("192.168.1.10");

    while(1)

    send(SocketClient,sendBuffer,16,0);

    closesocket(SocketClient);

    WSACleanup();

    }

    Linux下作為server端:

    {

    server_sockfd = socket(AF_INET, SOCK_STREAM, 0);

    server_address.sin_addr.s_addr = inet_addr("192.168.1.10");

    bind(server_sockfd, (struct sockaddr *)&server_address, server_len);

    listen(server_sockfd, 5);

    client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);

    while(1)

    read(client_sockfd, str,16);

    close(client_sockfd);

    }

    三、結(jié)束語(yǔ)

    本文設(shè)計(jì)了基于嵌入式平臺(tái)上可移動(dòng)攝像頭遠(yuǎn)程控制,對(duì)串口通信和網(wǎng)絡(luò)通信的原理和機(jī)制加以闡述,對(duì)串口驅(qū)動(dòng)和網(wǎng)絡(luò)驅(qū)動(dòng)的編寫(xiě)提出了具體的方法,并且在實(shí)際的操作應(yīng)用中給出了具體函數(shù)的編寫(xiě)。本文所提供的處理方法已在實(shí)際的項(xiàng)目中的得到應(yīng)用,對(duì)于其他的通過(guò)串口通信和網(wǎng)絡(luò)通信控制的設(shè)備,具有參考意義,今后我們還將展開(kāi)進(jìn)一步的相關(guān)研究。

    猜你喜歡
    基本原理網(wǎng)絡(luò)通信字符
    尋找更強(qiáng)的字符映射管理器
    發(fā)展經(jīng)濟(jì)學(xué)基本原理
    字符代表幾
    一種USB接口字符液晶控制器設(shè)計(jì)
    電子制作(2019年19期)2019-11-23 08:41:50
    基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計(jì)
    電子制作(2019年15期)2019-08-27 01:11:48
    人臉識(shí)別技術(shù)的基本原理與應(yīng)用
    電子制作(2019年14期)2019-08-20 05:43:34
    消失的殖民村莊和神秘字符
    網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
    基于網(wǎng)絡(luò)通信的校園智能音箱設(shè)計(jì)
    電子制作(2018年1期)2018-04-04 01:48:30
    談?dòng)?jì)算機(jī)網(wǎng)絡(luò)通信常見(jiàn)問(wèn)題及技術(shù)發(fā)展
    電子制作(2017年17期)2017-12-18 06:41:06
    宣城市| 崇礼县| 团风县| 临漳县| 莱西市| 黔江区| 杭锦后旗| 铜陵市| 嘉鱼县| 湖口县| 太和县| 长丰县| 昆山市| 扬中市| 肇州县| 杭锦后旗| 永胜县| 上杭县| 怀远县| 岳普湖县| 荔浦县| 宜黄县| 长春市| 满洲里市| 泾阳县| 涡阳县| 陵水| 兴业县| 兴山县| 汶上县| 五河县| 桂东县| 鹰潭市| 蕉岭县| 义马市| 磐安县| 盐津县| 衡水市| 方城县| 图们市| 梓潼县|