上位机下位机串口通信分析

大连海事大学 课程设计报告 课程名称:计算机微机原理课程设计 成 员: 成 员1:2220133293 范凯锋 成 员2:2220132642 唐绍波 成 员3:2220130079 曹晓露 设计时间:2016年3月7日至3月18日

考核记录及成绩评定 题目 双机数据采集系统设计 完成的主要工作 基本功能:实现数据采集,双机通信和基本形式的数据显示。其中下位机用数码管显示(或液晶屏)显示。具体实现要求: (1) 上位机发送一个启动命令(自己定义命令的格式和内容)给下位机; (2) 下位机接收到启动命令后开始采集1路模拟量数据(用电位器模拟实现)和1路开关量数据,并将模拟量转换成数字量在数码管(或液晶屏)上实时显示,然后把模拟量数据和开关量数据发送给上位机; (3) 上位机接收到数据后在显示器上显示。 成员分工 成员曹晓露进行资料的搜集,下位机的连线和程序的调试,成员范凯锋负责实验代码的编写以及相应流程图,成员唐绍波进行实验报告的撰写及相关画图。 综合评语(设计方案、实践环节、问题解答、设计报告) 成绩 2220133293 范凯锋 2220132642 唐绍波 2220130079 曹晓露

目录 1.设计任务与要求…………………………………1 1.1课程设计题目……… ……………………………1 1.2课程设计的背景 ……… …………………………1 1.3课程设计的目的 …………………………………1 1.4课程设计的意义 …………………………………1 1.5设计任务 ………………………………………1 2.设计方案…………………………………………2 2.1参数采集和传输设计…………… …………………2 2.2参数显示设计 ……………………………………2 2.3模拟信号采样设计…………………………………2 2.4硬件研制过程 ……………………………………2 3.详细设计…………………………………………3 3.1硬件系统框图与说明………………………………3 3.2硬件设计 ………………………………………4 3.3软件主要模块流程图与说明…………………………7 4.设计结果及分析…………………………………8 5.成员分工及工作情况……………………………9 5.1成员分工 ……………………… ………………9 5.2工作情况 ……………………… ………………9 5.3实验总结 …………………… …………………9 6.参考文献 ……………………… ………………97. 附录…………………………… ………………10

1 一、设计任务与要求 1.1课程设计题目 双机数据采集系统设计 1.2 课程设计的背景 二十一世纪是信息化高速发展的

世纪,产业的信息化离不开微型计算机的支持。微型计算机的进步是推动全球信息化的动力。因此在二十一世纪掌握微型计算机接口技术是十分有必要的。本次课题是双机参数采集系统设计,这次课题旨在通过自己对所需功能芯片的设计与实现来巩固以前所学的微机原理课程知识,同时也提高动手实践的能力,还有为将来进行更大规模更复杂的开发积累经验。 随着软件规模的增长,以及随之而来的对软件开发进度和效率的要求,高级语言逐渐取代了汇编语言。但即便如此,高级语言也不可能完全替代汇编语言的作用。 1.3课程设计的目的 《微机原理与汇编语言》是一门实践性和实用性都很强的课程,本次课程设计是在课程学习结束后,为使学生进一步巩固课堂和书本上所学知识,加强综合能力,充分理解和运用所学到的知识,通过简单的应用系统的设计,提高系统设计水平,启发创新思想。通过本课程设计希望达到以下目地: 培养资料搜集和汇总的能力; 培养总体设计和方案论证的意识; 提高硬件,软件设计与开发的综合能力; 提高软件和硬件联合调试的能力; 熟练掌握相关测量仪器的使用方法; 掌握相关开发软件,仿真软件的使用方法。 1.4课程设计的意义 通过课程设计加深理解课堂教学内容, 培养了我们资料搜集和汇总的在能力以及总体设计和方案论证的意识,锻炼了我们硬件、软件设计与开发的综合能力,提高了我们软件和硬件联合调试的能力,使我们掌握了相关测量仪器和相关开发软件以及仿真软件的使用方法,掌握计算机接口技术的基本应用方法。也掌握了常用接口电路的设计,掌握8255A、8253、8259A、8250A、ADC0809、DAC0832等接口芯片的应用和编程方法,进一步熟悉汇编语言的语法和编程技巧,以及双机通讯所用到的理论基础。 1.5设计任务 双机数据采集系统设计,制定适当的通信协议包括命令编码,数据编码格式,通信速率、采样周期、校验方式等; 模拟信号输入:可用实验箱上的电位器模拟。 每路模拟量/开关量信号的采样时间为0.5s,即每秒采样2次。 通信接口:自选(推荐串口)

2 二、设计方案 2.1参数采集和传输设计 下位机通过74LS244采集1路开关量,模拟量由电位器产生,从ADIN0输入,通过串口8250发送给上位机 2.2参数显示设计 模拟信号通过A/D转换器转换成数字信号下位机的数码管上显示,发送到PC机的数据通过串口工具显示 2.3模拟信号采样设计 通过8253定时触发8259中断,以达到定时采样的目的,0.5秒采样一次。 2.4硬件研制过程 (1)整个硬件系统划分为7个功能单元电路,包括:定时采样(8253),查

询功能(244),模数转换(0809),数据传输(8255,8250),数字显示(数码管),模拟量显示(示波器) (2)系统所选用各芯片的工作方式如下: ? 8255的工作方式:B口方式0,输入 ?8253的工作方式:计数器1,方式3(方波发生器), 计数初值3750,其时钟接clk3;计数器2,方式3,计数初值100,其时钟接out1 ?8250的工作方式:无奇偶校验,8个数据位,一个停止位 ?8259的工作方式:上升沿触发,一般嵌套,自动结束中断 (3)系统逻辑电路图如下: 图 2-1 系统逻辑电路图

3 三、详细设计 3.1硬件系统框图与说明 图 3-1 硬件系统框 下位机:8255:PB口,都选用方式0。下位机的采集转换的数据通过8250传到上位机,上位机接收到数据经过处理后通过8250回送到下位机。 8253:完成定时采样的功能,采样周期为0.5s。 8259A:用于0.5s触发中断。 0809:完成模数转换的功能。 8255B口:查询EOC状态,判断是否转换完毕。

4 3.2硬件设计 3.2.1 A/D转换的基本原理 A/D转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号。 A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。 A/D转换后,输出的数字信号可以有8位、10位、12位和16位等。 A/D转换器的工作原理主要有以下三种方法:逐次逼近法、双积分法、电压频率转换法。 A/D转具有如下几个技术指标: 1)分辩率指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2^n的比值。分辩率又称精度,通常以数字信号的位数来表示。 2)转换速率是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。积分型AD的转换时间是毫秒级属低速AD,逐次比 较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。采样时间则是另外一个概念,是指两次转换的间隔。为了保证转换的正确完成,采样速率必须小于或等于转换速率。因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是ksps和Msps,表 示每秒采样千/百万次。 3)量化误差由于AD的有限分辩率而引起的误差,即有限分辩率AD的阶梯状转移特性曲线与无限分辩率AD(理想AD)的转移特 性曲线(直线)之间的最大偏差。通常是1 个或半个最小数字量的模拟变化量,表示为1LSB、1/2LSB。 4)偏移误差输入信号为零时输出信号不为零的值,可外接电位器调至最小。 5)满刻度误差满度输出时对应的输入信号与理想输入信号值之差

。 6)线性度实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。 3.2.28253定时器/计数器电路 (1)电路原理 该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口,地址,读写线均已接好,T0、T1、T2时钟输入分别为8253CLK0、8253CLK1、8253CLK2。定时器输出,GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1、OUT2、GATE2、CLK2。原理图如下: 注:GATE信号无输入时为高电平

5 图3-2 8253定时器/计数器电路原理图 3.2.38250串口接口电路 (1)电路原理 该电路由一片8250,一片MAX232组成,该电路所有信号线均已接好。原理图如下: 图3-3 8250串行接口电路原理图 3.2.4 8259A中断控制电路 (1)电路原理 CS8259是8259芯片的片选插孔,IR0~IR7是8259的中断申请输入插孔。DDBUS是系统8位数据总线。INT插孔是8259向8086CPU的中断申请线,INTA是8086的中断应答信号。

6 图3-4 8259中断控制器电路原理图 3.2.5硬件系统地址分配说明 下位机: CS0: 0809 CS1:CS244 CS2:CS273 CS4:8253 CS5:8259

7 3.3软件主要模块流程图与说明 下位机工作流程图:

8 四、设计结果及分析

9 五、成员分工及工作情况 5.1成员分工 1人进行资料的搜集,下位机的连线和程序的调试,1人负责实验代码的编写以及相应流程图,1人进行实验报告的撰写及相关画图。 5.2工作情况 (1)模拟信号输入:1路模拟信号 (2)每路模拟信号的采样时间为0.5s,每秒采样2次。 (3)通信接口:上位机与下位机间用串行通信接口 (4)编程语言:汇编语言 (5)遇到的问题和解决的方法; 问题1:对实验台各部件之间的关系以及各部件的功能和编程不熟悉 解决方法:查看以前做过的实验和教科书,熟悉各部件的功能及编程 问题2: 发送一次启动命令,显示一次数据 解决方法:通过画流程图,把接受启动命令的程序放到开中断之前 5.3实验总结 本次微机原理课程设计给我们了充分的时间再一次巩固微机原理及接口技术的相关知识。设计的过程即使将书本理论知识运用到实践中,让我们对各个芯片如8259A、8255A、8253,ADC0809,DAC0832,cs244等有了更全面的认识。我们首先对整个系统进行大致的分析,画出程序流程图,依照思路将试验台的硬件连接完毕后,对软件部分进行了详细的编写及调试,最终达到理想的效果。在学习设计的过程中,逐步消解了我们学习上的盲点,受益匪浅,收获颇多,从中也发现了自己许多的不足和需要改进的地方。 通过近两周的努力,我们完成了本学期微机原理的课程设计。在设计的过程中遇到了不少的困难,通过相互讨论、查看书籍、搜索

网络、请教同学和老师,最终所遇到的问题都得到了圆满的解决方案。课程设计的任务提高了我们发现问题,解决问题的能力。理论与实践之间永远是存在着一定差距的,要把理论知识充分灵活地运用于实践是需要实践经验和牢固的理论基础的。 六、参考文献 [1].钱晓捷,陈涛.16/32位微机原理,汇编语言及接口技术(第2版).北京:机械工业出版社,2005 [2].微机原理实验指导 [3].EL-MUT-III 单片机/微机实验系统 Techshine 使用说明及实验指导书 北京精仪达盛科技有限公司 2015 七、附录 附录一:下位机程序

10 con8279 equ 0492h dat8279 equ 0490h assume cs:code code segment public org 100h start: jmp start1 segcod db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h start1: cli ;中断系统未初始化,先关中断 mov dx,04f0h mov al,00010011B ;边沿触发,单片,写ICW4 out dx,al mov dx,04f2h mov al,80h ;中断类型号80h-87h out dx,al mov al,00000011B; 一般嵌套,自动结束中断,无缓冲 out dx,al mov al,0 out dx,al ;OCW1,开放中断 mov ax,0 mov ds,ax ;中断向量表位于内存最开始的1KB,段地址为0 mov si,200h ;初始化中断向量表,80H*4=200H mov ax,offset int0 mov ds:[si],ax add si,2 mov ds:[si],100h ;代码段短地址100h mov bx,0480h ;初始化8250 mov dx,bx add dx,06h mov al,80h out dx,al mov dx,bx mov ax,0ch ;000ch---9600 ,clk=4.77MHZ/4 out dx,ax ; AL=4770000/16/9600/4=8 add dx,2 mov ax,0h out dx,ax add dx,4 ;LCR again mov ax,03h ;no pe,8 bit, 1 stop out dx,ax mov dx,bx

11 add dx,2 ;Interrupt Enable register mov ax,0 out dx,ax mov dx,04d6h ;初始化8353,CS3 mov al,01110110B;写控制字,计数器1,先写低字节再写高字节,二进制,方式3 out dx,al mov ax,3750 mov dx,04d2h out dx,al mov al,ah out dx,al mov dx,04d6h mov al,10010110B out dx,al mov dx,04d4h mov al,100 out dx,al mov dx,04b6h ;初始化8255,CS1 mov al,10000010B;B口方式0,输入 out dx,al one: call recv cmp al,'s' jnz one mov al,0 four: sti waiting: cmp al,1 ;dest-src jnz waiting mov dx,04e0h;74LS244,CS4 in al,dx and al,01h mov ah,0 call send mov dx,04a0h out dx,al wait1: mov dx,04b2h ;8255B口 in ax,dx ;读 EOC

12 and ax,1 cmp ax,1 jne wait1 ;如果EOC=0,waiting.... mov dx,04a0h in ax,dx ;读转换结果 and ax,0ffh mov bx,ax nop call disp call send mov al,0 jmp four int0: mov al,1 ;中断服务子程序 iret disp: push ax mov di,offset segcod mov ax,08h ;工作方式,16位,左入 mov dx,con8279 out dx,ax mov ax,90h mov d

x,con8279 out dx,ax ;写显示RAM命令,地址自增 mov dx,dat8279 push bx and bx,0f0h ;取高4位 mov cl,4 shr bx,cl add di,bx mov al,cs:[di] mov ah,0 out dx,ax ;写RAM0 nop nop mov di,offset segcod pop bx and bx,0fh ;取低4位 add di,bx mov al,cs:[di] mov ah,0 out dx,ax ;写RAM1 pop ax ret

13 send: push ax ;入口参数ax mov bx,0480h mov dx,bx add dx,0ah in al,dx test al,20h ;逻辑与 jnz recv2 pop ax jmp send recv2: pop ax mov dx,bx out dx,al ret recv: mov bx,0480h ;出口参数al mov dx,bx add dx,0ah in al,dx test al,01h jnz recv1 jmp recv;查询 recv1: mov dx,bx in al,dx ret code ends end start 附录二:元器件 序号 器件名称 作用 1 PC机 显示及写入程序 2 8259 产生中断启动A/D转换

14 3 8253 按0.5s定时触发中断 4 ADC0809 A/D转换 5 CS273 按阈值控制LED灯 6 8250 PC机与上位机间数据传送 7 CS244 EOC查询是否转换结束

相关文档
最新文档