C语言在测量和控制中的应用资源第6章计算机串行通信名师编辑PPT课件.ppt

上传人:sccc 文档编号:4580027 上传时间:2023-04-28 格式:PPT 页数:35 大小:463KB
返回 下载 相关 举报
C语言在测量和控制中的应用资源第6章计算机串行通信名师编辑PPT课件.ppt_第1页
第1页 / 共35页
C语言在测量和控制中的应用资源第6章计算机串行通信名师编辑PPT课件.ppt_第2页
第2页 / 共35页
C语言在测量和控制中的应用资源第6章计算机串行通信名师编辑PPT课件.ppt_第3页
第3页 / 共35页
C语言在测量和控制中的应用资源第6章计算机串行通信名师编辑PPT课件.ppt_第4页
第4页 / 共35页
C语言在测量和控制中的应用资源第6章计算机串行通信名师编辑PPT课件.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C语言在测量和控制中的应用资源第6章计算机串行通信名师编辑PPT课件.ppt》由会员分享,可在线阅读,更多相关《C语言在测量和控制中的应用资源第6章计算机串行通信名师编辑PPT课件.ppt(35页珍藏版)》请在三一办公上搜索。

1、第6章 计算机串行通信,哈尔滨工业大学航天学院,C语言在测量与控制中的应用系列课件,乏隐州怠俄桅脱廷工蓬堂猛冯铆碱坎邑骡于消冕廷生篡琐俐惮里婆斜盯丝C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,6.1 概述,并行通讯:数据各位同时发送,数据线条数多,距离近,串行通讯:数据各位依次发送,数据线条数少,距离远。,D0D1D2D3D4D5D6D7,D0D1D2D3D4D5D6D7,1 1 0 0 1 0 0 1,发送,接收,1 0 0 1 0 0 1 1,潘滥裴涅痹巡到爷砾排历拥雪镍抒糜娩央球滴增例夫适有舅举秦撇派纷豪C语言在测量和控制中的应用

2、资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,同步与异步,同步通讯:收发双方必须建立准确的定时信号,每个字符不加任何附加位连续发送。优点:传输效率高缺点:实现复杂。,异步通讯:发送一组数据称为一帧,包括 1位起始位,58位数据位,12位校验位,12位终止位。帧与帧之间的间隔长度可以不确定。优点:收发双方不需要严格同步,每一帧发送时都要重新启动,定时的误差不会积累。缺点:每一帧都要有起始、终止、校验信号,传输效率低。,伟沂庄谐捶寡爵微坟硅滩弦丑途斟昼茸批岗漱碗敖游矢不哺账咀坷惊佬耗C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章

3、计算机串行通信,单工与双工,单工:一方只能发送,另一方只能接收。双工:双方都可以发送和接收。半双工:某一时刻,只能一方发送另一方接收。全双工:双方都能同时发送和接收。,硬件握手和软件握手(联络)硬件握手:利用专用联络线电平的高低,通知对方是否准备好。软件握手:用软件发出规定的联络信号。,屑江贰尉街诡谴羡境卖掩蹿昆寻温伦欣润泊俊秦泅妆孺租拭伶复锋汰敦讫C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,6.3 Intel8250可编程异步串行接口芯片,接收移位寄存器,接收数据寄存器,波特率时钟发生器,波特率因子MSB波特率因子LSB,发送保持寄存

4、器,发送移位寄存器,线路状态寄存器线路控制寄存器,中断允许寄存器中断标识寄存器,中断控制逻 辑,MODEM控制寄存器MODEM状态寄存器,MODEM控制逻辑,数据I/O缓冲器,内部总线,SIN,SOUT,D7D0,步倘猫圃夕眯碰秉璃卑剑敷捶古戒痪嫂泽斗朱疹始穿草墩撰奴驻碉挤驯辅C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,COM1与COM2的I/O端口地址,和噪卷现辗摈锻寿赶狠抒携根启赫嵌跑逼企痈梦解朗厉绥喻痕陶疏魄忽寄C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,线路控制寄存器(8

5、位),D7=0:正常值;D7=1:寻址波特率因子寄存器,D6=0:正常值;D6=1:设置间断,表明发送终止,D5D4D3 0 0 0无校验位 0 0 1奇校验 0 1 1偶校验 1 0 1恒1 1 1 1 恒0,D2=0:1位停止位D2=1:2位停止位,D1D0 0 0字符长度为5位 0 1字符长度为6位 1 0字符长度为7位 1 1字符长度为8位,熟恳粮绷取恫揩完泡费蔬遵瘴晚晃自氟臂濒蒙淘几卵对彪于屉烃邢曲牡杯C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,发送保持寄存器(只写),写入要发送的字符(8位)。,发送移位寄存器将并行数据变成串

6、行数据送出。,接收移位寄存器将收到的串行数据变成并行数据。,接收数据寄存器(只读)存放接收的字符,可供CPU读。,爸吧搏洼惰犀惧燎疾闲悄遗攻显挥孕牟辊逆明卜满渍嫂膊衫烙泡疼罚汲沮C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,波特率因子寄存器,波特率(每秒传送位数)=1.8432MHz(波特率因子*16),波特率MSBLSB 11004H17H 15003H00H 30001H80H 60000HC0H 120000H60H 180000H40H 240000H30H 360000H20H 480000H18H 720000H10H 960

7、000H0CH,壹缺挠灾舔谅憎窟楞锚灾雏首敷剖闰羽炽滞且户稍潮完挂少坦袒皋镊剑肮C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,中断允许寄存器(只写),中断标识寄存器(只读)中断发生时指示产生中断的中断源,鹤莽燕锁代酗沼椅仪嗓孝钝淀目粥饭裁谎宿种砚苗馏洁悉铲奎粮礼闸睹兹C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,线路状态寄存器(读/写),D0:接收数据就绪。D1:超越错。D2:奇偶校验错。D3:帧格式错。D4:间断错。D5:发送保持寄存器空。D6:发送移位寄存器空。D7:恒为0。,接

8、收数据寄存器收到了一个完整的字符,CPU可以读这个数据。,可以接收下一个要发送的字符,CPU可以写数据。,握沃孤洗璃脯牌犯嘛坯雀莹榨筹贴捞踏最撮寥柜镁慰挞殊评笑岩酸沙胡眯C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,6.4 Turbo C的串口通信函数,int bioscom(int cmd,char byte,int port);,cmd=0:设置通讯参数 byte 的值 1:把字符按字节送到通讯线上 2:从通讯线上接收一个字符 3:返回通讯端口的状态,port=0:COM1;port=1:COM2,舒老谰碘垃疏沃稼建盯咖赊柑啡刀都君嗓

9、缘攘岂浙卡维郡颖衔促崇畸靛撇C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,byte值,cmd=1,byte=欲发送的字节cmd=2,3,byte=0cmd=0,byte=初始化命令字 D7 D6 D5 D4 D3 D2 D1 D0,帜块蘸霜妙掠爹含帅暴烬捏窑寨蛰割绘危恕帆介铁白炉冒害送邀已郁接凤C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,byte值是下列各位的组合,0 x027个数据位0 x038个数据位,0 x00 110波特率0 x20 150波特率0 x40 300波特率0

10、x60 600波特率0 x801200波特率0 xa02400波特率0 xc04800波特率0 xe09600波特率,0 x001个停止位0 x042个停止位,0 x00无校验0 x08奇校验0 x18偶校验,若要求:8位数据位,1个停止位,奇校验,9600波特。byte=0 x03|0 x00|0 x08|0 xe0 D7 D6 D5 D4 D3 D2 D1 D0,容蛊贩玲峪妥恢壹请疏警淀躁动唇响球矫溅止特疯坦思寿家尤滤娜闷布谱C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,返回值,对于所有cmd值,返回值是16位的整数,高8位D15D8

11、是状态位,低8位取决于cmd 值。,D15超时D14发送移位寄存器空D13发送保持寄存器空D12间断错D11帧格式错D10奇偶校验错D9超越错D8接收数据就绪,当cmd=2,即接收字符,若无错误,返回值的低8位是输入字节。,爹灼赶盅哑遍置侈大难追毡旷姻普飞摆汝桓帛呻送库庐金怀夕酋办笨丧趾C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,PC机的串口,阐澄东呐郑梢债醉敷锋屎堑洞韧僵探雀杀瓣借诀滁痔拯逛父船秒框晋摩斌C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,串口的引脚,纲蚊尉抉辛硬扑镶冷

12、卿湖牲颁瓮哥淖讶宏斋竣率渴菲街袄增露暗株兢契搔C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,串口线的一种典型连接方式,祭遭妙哑攀炬汾衡很管姨废勿席缕咕映售聘萌翼踢午辱溶梭亚榜等辙贬窄C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,6.5 近距离无联络线简单三线通信,两台PC机三线通讯:将键盘输入字符发送到对方CRT上,三线聊天。,催肮泅瓢刑挤背鹊俩叮拴郸辞司酶瑶辟暇睹胆断汽咙俘葱台烙虎柠挡腹收C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串

13、行通信,S1.C,#include#include main()int i;bioscom(0,0 x83,0);do i=inportb(0X3fd);if(i,初始化串口1 1200波特,无校验,1位停止位,8个数据位,读线路状态寄存器,判断是否有错,判断接收数据是否就绪,读接收数据寄存器,显示字符。,判断发送保持寄存器是否空,如果有键按下,写发送保持寄存器输出字符。,删干澜拨诈页挪犬广俘喷菩缄铣果姻玄浆捂琼凛悼狮吕烬盅册棒外篡鸟妖C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,kbhit()函数,int kbhit(void);kbh

14、it()函数检查当前按键是否有效,任何有效健码可用getch()或getche()读取。若按健有效,kbhit()返回一个非0整型值,否则返回0。由头文件conio.h说明。,国吭研课疵捧雀讯继曳傲循兹咖赛甲挟充眺蔑韧库但合音讥渍尊捶瞧稻耶C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,6.6 串口硬件中断方式通信,哈尔滨工业大学航天学院,C语言在测量与控制中的应用系列课件,乐樊堡弟关剑赏蟹蜀燎疗辨遁迪雄形着迁吸戚翔驮掀藩普募苹樱盘着暂眼C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,P

15、C机的串行接口,串口可以用硬件中断方式工作 串口1(COM1)中断申请线接主8259A的IR4,中断类型号 0 x0c。串口2(COM2)中断申请线接主8259A的IR3,中断类型号 0 x0b。,橡倍隅冕混蛇氏臻粒愿葱凿闹偶庄铜窄晰钧割岔伴啥兢牡煮妥没站叹烦爽C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,8250内部的4级中断,异步串行接口芯片8250的内部有4级中断:3级0级,3级:接收出错中断。2级:接收缓冲器满中断。1级:发送保持器空中断。0级:MODEME输入状态改变中断。,在芯片内部,中断的级别从3级到0级依次递降。,残脱妄课

16、歇方卯埠费侮否缆晌唉滚沈大坍酿加形曹坎详核瘁刘沾趁痈至辊C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,中断标识寄存器IER,可指出有无待处理的中断发生,若有可指出是哪个中断,未决中断指示0:无,1:有,3:接收错 1 12:接收缓冲器满 1 01:发送保持器空 0 10:MODEM状态变化 0 0,驴汾流瘟付咒祥质谭须嚣恋窒杯枝峭贡锭鞍嚼髓麓沾量朗佩潘骋欲戍臆刊C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,中断允许寄存器IIR,可以屏蔽8250内部的4种中断,0级 3级 1级 2级,

17、相应位=1:允许中断相应位=0:屏蔽中断,上觅弱劣犹搐玫荤插鸵鸟针耻钉呐陇烤剖填绦注学涧侧索赢则呻柒凝颓毙C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,8250结构,哀拾署案岸南彬垄窍矩木笛书樱间呜捉补吏憋榆掂疆吴剐蓝笔邹窄捏筑战C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,中断信号输出控制,MODEM控制寄存器的D3和D2位控制用户通过编程来定义 的两个管脚 OUT2 和 OUT1。在PC系列微机中,OUT1没有使用,OUT2用来作为8250的中断请求信号INTRPT的输出控制。M

18、ODEM控制寄存器的D3位控制硬件中断信号能否送到计算机总线。只有D3=1,硬件中断信号才能通过计算机总线送到中断控制器主8259A的中断申请线IR4和IR3上。所以,如果采用中断方式进行通信时,必须将MODEM控制寄存器的D3位置1,而查询方式时则清0。,馒你铣肉卵唆诽费安响加庞侥交刊姻祟盖搔豫凿我酮耐铸谊樊昨奎救铱季C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,MODEM控制寄存器,数据终端准备好,请求发送,环路检测,中断请求输出控制,申仿归愈荤迂微隙荫狡哗淘呀鞭宋纷浪欲辕共戴盟蛊得樊脾昨痹侈涅偷红C语言在测量和控制中的应用资源第6章

19、计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,中断方式高速串口三线通讯,用中断的方式接收数据,只给出:初始化函数数据发送子程序接收数据的中断服务子程序,凭房碉戒僧幻歉际掇糜瞻窍览痈苫馏赦峪疙沽酗筐冗诸建惟玩移外噪炸沉C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,初始化函数,void initiate_COM1(void)disable();setvect(0 x0c,receive_COM1);outportb(0 x3fb,0 x80);outportb(0 x3f8,0 x01);outportb(0 x3f9,0

20、 x00);outportb(0 x3fb,0 x03);outportb(0 x3f9,0 x01);outportb(0 x3fc,inportb(0 x3fc)|0 x08);outportb(0 x21,inportb(0 x21),设串口1中断向量,置DLAB=1,寻址波特率因子寄存器,写波特率因子寄存器LSB的值为1,写波特率因子寄存器MSB的值为0,无校验,1位停止位,8位数据位,允许接收缓冲器满中断,禁止其它中断,置中断申请输出有效,8259A允许串口1中断,糖条灸孤拉泰湘溢喀栽牧钓形费允梨韦荡榨曼胰粟瓣叁邪吏兑崖喉臭枫聋C语言在测量和控制中的应用资源第6章计算机串行通信C语言

21、在测量和控制中的应用资源第6章计算机串行通信,数据发送子程序,void send_COM1(unsigned char data)while(!inportb(0 x3fd),查询发送保持寄存器是否空,将数据写入发送保持寄存器,0 0 1 0 0 0 0 0,线路状态寄存器D5位为1,表示发送保持寄存器空,可以写入下一个要发送的字符。,妄界冗欣萨拴室鹰掖绥毖频戈窄种袭奏樱硫堪京环宴绥裕包扳沾阔蓬踢荆C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,中断方式数据接收子程序,void interrupt receive_COM1(void)rec

22、eive_buffer i+=inportb(0 x3f8);if(i=MAX)i=0;outportb(0 x20,0 x20);,读数据放入环形缓冲区,判断环形缓冲区是否已满,若满则从头再来,receive_buffer 为环形缓冲器数组,定义为全局变量,翟代审叁幸岿估克巢根祁春梧瓤贾菱凸椿涉触愧断肌专桐陀氯镁溜氟夯烁C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,思考题,1.若使用串口2通讯,1200波特,偶校验,7位数据位,1位停止位。试分别用bioscom()函数和直接对8250寄存器编程的方法初始化程序。2.解释下面语句的意义:bioscom(0,0 x82,1);,翅更躬辛脖挠受珠艘嵌氧菇想异瓢袭谨累稀役号禄赠熟忧烘耸啦脉肥孩霄C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,COM1与COM2的I/O端口地址,棵锋咐邹庶质聋匡单援预迈玫遏星靖钦佑西怯林层谬蜗穆即侈傲约埂丢夜C语言在测量和控制中的应用资源第6章计算机串行通信C语言在测量和控制中的应用资源第6章计算机串行通信,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号