嵌入式系统第十一讲嵌入式串口通信与GPRS模块实验.ppt
《嵌入式系统第十一讲嵌入式串口通信与GPRS模块实验.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统第十一讲嵌入式串口通信与GPRS模块实验.ppt(53页珍藏版)》请在三一办公上搜索。
1、第十一讲 嵌入式串口通信与GPRS模块实验,电信学院崔寅鸣,本讲主要内容,串口通信原理GPRS模块AT指令参考“实验十二 串口通信实验”,串口通信,串行通信方式,每次传送一个bit的通信方式,字符被分成一串bits来传输。串行数据的速度通常用每秒传输的字节数bits-per-second(bps)或者波特率(baud)表示。,串口设备,计算机发展历史中,串口广泛用于连接外设;虽然速度慢,却现在仍然广泛使用某些计算机使用称为UART(Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置)的集成电路来作为串口设备。它完成计算机内并行数据和设
2、备端口串行数据的转换(输入输出FIFO);并且可以自动地处理数据的时序。而某些低端设备则会让CPU直接来传送数据。,RS-232,RS-232是EIA(Electronic Industries Association)定义的串行通信的电器接口.分为DB-9和DB-25两种接口。DB-9定义,RS-232,DB-25定义,串行异步通信格式,异步模式:空闲时串口一直是1;当有数据时,总是以一个start位开始,start位是0;串口随时可进行传输,不需时钟也不用定义同步帧头帧尾,故称异步通信在start(0)之后,字符编码可以是7bits或者8bits之后可能有parity奇偶校验位和stop停
3、止位(1,1.5 或者2 bits)所以通常用8-N-1、7-E-1等方式来描述,流控,两个串口设备之间,可能因为链路差异等原因,需要进行数据流的协调,一般两种方法:软件流控:以XON(八进制021)标示开始,以XOFF(八进制023)标示结束硬件流控:RTS(发送方准备好发出Ready to Send)和CTS(接收方准备好发出Clear to Sent)握手信号,Linux下访问串口,设备文件Linux下设备是以设备文件方式来访问的,串口也是如此。在linux系统下面,每一个串口设备都有设备文件与其关联,设备文件位于系统的/dev目录下面。如linux下的/ttyS0,/ttyS1分别表示
4、的是串口1和串口2。,例,#include#include/*POSIX terminal control definitions*/int open_port(void)int fd;/*File descriptor for the port*/fd=open(/dev/ttyS0,O_RDWR|O_NOCTTY|O_NDELAY);if(fd=-1)perror(open_port:Unable to open/dev/ttyS0-);else fcntl(fd,F_SETFL,0);/*设置串口为阻塞方式*/return(fd);,头文件,#include/*标准输入输出定义*/#in
5、clude/*标准函数库定义*/#include/*Unix 标准函数定义*/#include/*数据类型定义*/#include/*文件属性定义*/#include/*文件控制定义*/#include/*POSIX 终端控制定义*/#include/*错误号定义*/#include/*字符串功能函数*/,例解,O_RDONLY(只读)、O_WRONLY(只写)、O_RDWR(读写)标志O_NOCTTY可以告诉UNIX这个程序不会成为这个端口上的“控制终端”。如果不这样做的话,所有的输入,比如键盘上过来的Ctrl+C中止信号等等,会影响到串口进程。O_NDELAY:无论是否读到数据,立即返回,
6、否则会一直等待非阻塞方式,串口读写,读:int read(int fd,char*,int length);其中fd为设备号;char*为数据缓冲区;length每次读取数据的长度;返回值为实际读取数据的长度。写例:n=write(fd,“ATZr”,4);返回写的比特数,如果错误返回负数,关闭串口,关闭:int close(int fd);参数说明:fd:文件描述符 函数返回值:成功返回0,失败返回-1。,串口配置与终端标准结构体,配置串口主要通过tcgetattr()和tcsetattr()这两个函数。他们均使用一个结构体,该结构体对终端的输入、输出、硬件特性、控制协议等方面进行了定义,具
7、体定义形式如下(见termios.h):struct termios tcflag_t c_iflag;输入参数tcflag_t c_oflag;输出参数tcflag_t c_cflag;控制参数tcflag_t c_lflag;本地模式cc_t c_line;行控制cc_t c_ccNCCS;控制字符;,终端标准结构体说明,其中参数:c_iflag输入参数设置;c_oflag输出参数设置;c_cflag设置决定终端硬件特性的控制标志,包括数据位宽度、停止位、奇偶校验位等c_lflag存放本地模式(与用户交互)设置c_cc用来控制数据发送到调用程序的方式,终端设置,设置终端属性的一般方法是:首
8、先调用tcgetattr()填充上述结构体对该结构体进行必要修改最后调用tcsetattr()使新设置生效,输入选项c_iflag,注:NL=new line,输出选项c_oflag,部分参数:,终端速度控制,获取和设置输入、输出速度函数:int cfgetispeed(struct termios*tp);int cfsetispeed(struct termios*tp,speed_t speed);int cfgetospeed(struct termios*tp);int cfsetospeed(struct termios*tp,speed_t speed);,速度定义,波特率的设置
9、定义在例如B4800-4800B9600-9600B19200-19200B38400-38400B57600-57600B115200-115200,速度设置举例,#include/头文件定义.struct termios opt;/*定义指向termios 结构类型的指针opt*/cfsetispeed(&opt,B9600);/*指定输入波特率,9600bps*/cfsetospeed(&opt,B9600);/*指定输出波特率,9600bps*/,Cflag设置举例,No parity(8N1)options.c_cflag,硬件流控设置,开启硬件流控:options.c_cflag|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 第十一 串口 通信 GPRS 模块 实验
链接地址:https://www.31ppt.com/p-5970522.html