欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    嵌入式系统第十一讲嵌入式串口通信与GPRS模块实验.ppt

    • 资源ID:5970522       资源大小:479.50KB        全文页数:53页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式系统第十一讲嵌入式串口通信与GPRS模块实验.ppt

    第十一讲 嵌入式串口通信与GPRS模块实验,电信学院崔寅鸣,本讲主要内容,串口通信原理GPRS模块AT指令参考“实验十二 串口通信实验”,串口通信,串行通信方式,每次传送一个bit的通信方式,字符被分成一串bits来传输。串行数据的速度通常用每秒传输的字节数bits-per-second(bps)或者波特率(baud)表示。,串口设备,计算机发展历史中,串口广泛用于连接外设;虽然速度慢,却现在仍然广泛使用某些计算机使用称为UART(Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置)的集成电路来作为串口设备。它完成计算机内并行数据和设备端口串行数据的转换(输入输出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停止位(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分别表示的是串口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/*标准输入输出定义*/#include/*标准函数库定义*/#include/*Unix 标准函数定义*/#include/*数据类型定义*/#include/*文件属性定义*/#include/*文件控制定义*/#include/*POSIX 终端控制定义*/#include/*错误号定义*/#include/*字符串功能函数*/,例解,O_RDONLY(只读)、O_WRONLY(只写)、O_RDWR(读写)标志O_NOCTTY可以告诉UNIX这个程序不会成为这个端口上的“控制终端”。如果不这样做的话,所有的输入,比如键盘上过来的Ctrl+C中止信号等等,会影响到串口进程。O_NDELAY:无论是否读到数据,立即返回,否则会一直等待非阻塞方式,串口读写,读:int read(int fd,char*,int length);其中fd为设备号;char*为数据缓冲区;length每次读取数据的长度;返回值为实际读取数据的长度。写例:n=write(fd,“ATZr”,4);返回写的比特数,如果错误返回负数,关闭串口,关闭:int close(int fd);参数说明:fd:文件描述符 函数返回值:成功返回0,失败返回-1。,串口配置与终端标准结构体,配置串口主要通过tcgetattr()和tcsetattr()这两个函数。他们均使用一个结构体,该结构体对终端的输入、输出、硬件特性、控制协议等方面进行了定义,具体定义形式如下(见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用来控制数据发送到调用程序的方式,终端设置,设置终端属性的一般方法是:首先调用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);,速度定义,波特率的设置定义在例如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|=CNEW_RTSCTS;关闭硬件流控:options.c_cflag,软件流控设置,开启:options.c_iflag|=(IXON|IXOFF|IXANY);关闭:options.c_iflag,本地模式c_lflag,本地模式成员变量c_lflag可以控制串口驱动怎样控制输入字符例,经典输入模式:options.c_lflag|=(ICANON|ECHO|ECHOE);经典输入是以面向行设计的。在经典输入模式中输入字符会被放入一个缓冲之中,这样可以以与用户交互的方式编辑缓冲的内容,直到收到CR(carriage return)或者LF(line feed)字符。需要选择ICANON,ECHO和ECHOE选项,本地模式c_lflag,例,原始输入模式:options.c_lflag 输入字符只是被原封不动的接收程序中需要去掉ICANON,ECHO,ECHOE和ISIG选项,c_cc,字符数组c_cc里面包括了控制字符的定义和超时参数.,c_cc,VMIN可以指定读取的最小字符数。如果它被设置为0,那么VTIME值则会指定每个字符读取的等待时间。如果VMIN不为零,串口读取VMIN个字符。这样可以明确给出要读取的字符个数,行控制函数(一),行控制函数用来查询和设置各种与数据操作方式、时间等相关的特征:int tcdrain(int fd);所有挂起的输出操作完成,并将一直保持等待,直到所有输出都已经写到文件描述字fd指向的文件为止int tcflush(int fd,int queue);刷新最新排在文件描述字fd队列中的输入和输出。参数queue用来指定要刷新的数据,如果queue取值为TCIFLUSH,刷新接收到但尚未读取的输入数据;如果取值为TCOFLUSH,刷新被改写但尚未传送的输出数据;如取值为TCILFLUSH,则两者都刷新。,行控制函数(二),int tcflow(int fd,int action);函数tcflow()是流量控制函数,用来启动或停止对文件描述字fd的数据传送和接收,参数action如果为TCOON,表示启动输出,为TCOOFF时表示停止输出;为TCION时启动输入;为TCIOFF时停止输入。,串口函数,串口通信类的封装,设计一个串口类,包含打开串口,设置串口参数、读取串口数据、向串口写数据及关闭串口等功能。这些功能都是类中的一个方法,而这些方法都由前述的串口操作函数来具体实现。具体代码参考实验指导书,实验结果,参照实验指导书,进行程序的编译,可得到指导书中结果针对ARM平台的串口程序,请注意serialarm.desktop要下载到开发板/usr/qpe/apps/applications目录下开发板上设置QtE环境变量要如下:#export QTDIR=/usr/qpe#export LD_LIBRARY_PATH=/usr/qpe/lib最后执行./serialarm qws 要加qws参数启动服务才行;或者从qtopia桌面启动,可能使用QT控件介绍,QLabel:静态显示文本字符串,头文件:#include textLabel2-setText(tr(send text);/显示文本字符串的内容,QT控件介绍,QString str(recvbuf);/字符串类,QT控件介绍,QPushButton:按钮控件头文件:#include OpenComBtn=new QPushButton(this,OpenComBtn);OpenComBtn-setGeometry(QRect(30,110,90,31);OpenComBtn-setText(tr(“open com);/Sets 显示文本字串的内容protected slots:void OpenPort();/声明一个Slotconnect(OpenComBtn,SIGNAL(clicked(),SLOT(OpenPort();/建立Signal与Slot之间的链接。,QT控件介绍,QTimer:定时器类QTimer*ReadComTimer;ReadComTimer=new QTimer(this);/创建一个定时器ReadComTimer-start(10);/开启一个定时器,定时间隔10毫秒,QT控件介绍,QMultiLineEdit:文本输入和显示控件头文件:#include receive_textEdit-clear();/清除控件中的文本receive_textEdit-insert(str);/在当前光标位置插入字符串(由Qt Designer 3 创建的QTextEdit在开发板上不支持,需要手动改为本控件),GPRS模块,MC35i,GPRS模块采用SIEMENS公司的MC35i模块。MC35i是SIEMENS公司推出的新一代无线通讯GSM/GPRS模块,可以快速安全可靠地实现系统方案中的数据、语言传输、短信息服务(SMS)和传真。模块工作电压为3.3V5.5V,可以工作在900MHz和1800MHz两个频段,所在频段功耗分别为2W(900MHz)和1W(1800MHz)。模块有AT指令集接口,支持文本和PDU模式的短消息、第三组的二类传真、以及2.4k,4.8k,9.6k的非透明模式。此外,该模块还具有电话簿功能、多方通话,漫游检测功能,常用工作模式有省电模式、IDLE、TALK等模式。通过独特的40ZIF连接器及50天线连接器,可分别连接SIM卡支架和天线。,主要构成,MC35i模块主要由GSM/GPRS基带处理器、GSM/GPRS射频模块、供电模块(ASIC)、闪存、ZIF连接器、天线接口六部分构成,ZIF解释,ZIF(Zero Insertion Force)Socket是指零插拔力的插座。把这种插座上的搬手轻轻抬起,CPU可以很容易、轻松地插入插座中,然后将搬手压回原处,利用插座本身的特殊结构产生的挤压力,将CPU的管脚与插座牢牢的接触,绝对不会存在接触不良的问题。而拆卸CPU芯片只需将插座的搬手轻轻抬起,则压力解除,CPU芯片即可轻松取出。,与上位机接口,串口,AT指令集,标准AT指令集,SMS相关AT指令集,GPRS相关AT指令集,短信数据格式,见实验指导书“实验十三 GPS和GSM通信实验”,SMS数据编码,根据GSM 07.05的定义,SMS短信息的收发模式共有Block模式、基于AT命令的Text模式和PDU模式三种。PDU模式下实现短消息收发是目前应用最广泛的一种方式,PDU模式,PDU模式下的数据串除了包含可显示的消息本身之外,还包含如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等信息。且PDU数据串的编码方式包括7-bit、8-bit和UCS2这三种编码方式。其中7-bit编码应用最为广泛。它将一串7-bit的字符(最高位为0)编码成8-bit的数据,每8个字符可压缩成7个。8-bit编码通常用于发送数据消息,比如图片和铃声等。而UCS2编码用于发送Unicode字符。,发短信参考界面,收短信参考界面,

    注意事项

    本文(嵌入式系统第十一讲嵌入式串口通信与GPRS模块实验.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开