微机原理课程设计 --------- 设计与总结报告 摘要:设计制作了一个基于PC机的八位ISA总线扩展卡,此卡的基本功能:①.24位数字I/O,②三个十六位定时/记数通道; 选做功能:①.八通道八位A/D,②单通道八位D/A;完成的测控任务是:基于八位ISA总线扩展卡的悬挂运动控制系统。该系统由PC机+ISA卡组成的运动控制与显示部分、步进电机驱动与传动部分、画笔及轨迹检测部分组成。系统实现了画笔的直线插补和圆插补轨迹控制算法、快速移动的定位算法、连续和间断黑线的寻踪算法。通过精密的螺纹轴设计,拉绳的移动分辨率为0.5mm。根据题目要求的精度,画笔在X-Y平面移动的分辨率定为1cm。 系统进行各项运动控制的参数来自于外部的键盘和传感器,经过ISA总线扩展卡送入PC机,经处理后对外部发送控制命令。同时结合PC机动态显示画笔的运动状态。 在黑线寻迹方案中我们采用了菊花形矩阵式红外光电传感器结构,结合软件上的寻踪算法能有效地能有效地检测出连续或间断黑线轨迹,以及进行轨迹跟踪 关键词:ISA总线,电机驱动与传动控制,传感器
目录 1. 系统设计……………………………………………………………………………..…….2 1.1 设计任务书……………………………………………… ………..……2 1.2 总体设计方案………………………………………………….………..3 1.2.1 设计思路…………………………………………………………..3 1.2.2 设计方案…………………………………………………………..7. 2. 系统原理设计与实现…………………………………………………..………………13 2.1 ISA卡的地址比较与译码………………….……………………………13 2.2 基本功能设计…………….………………………………………………14 2.2.1 24位数字I/O功能………………………………………………..15 2.2.2 3个十六位定时/记数通道………………………………………..15 2.3 选做功能设计…………………………………………………………….16 2.3.1 八通道八位A/D功能…………………………………………….17 2.3.2 单通道八位D/A功能…………………………………………….17 3. ISA卡使用说明………………………..……………….…………………………….16 3.1 ISA卡简介……………………………………………….…… …………17 3.2 ISA卡地址分析…………………….…………………………………… 18 3.3 寄存器地址分配…………………………………………………………. 22 4.系统软件测试 …………………………………..…………………………. 22 4.1 基本功能测试 ……………………………………………………….…23 4.1.1 24位数字I/O功能测试 ..……………………………………..… 23 4.1.1 3个十六位定时/计数功能测试 ………………………………..…23 4.2. 选做功能测试 ……………………. ………………………………...….24 5. 简单测控任务……….………………………………………………………………….25 5.1 系统设计………………………………………………………………….25 5.2 设计要求………………………………………………………………….25 5.2.1 基本要求…………………………………………………………......25 5.2.2 发挥部分……………………………………………………………..26 5.3 总体设计方案…………………………………………………………….26 5.4 控制卡的结构和工作原理……………………………………………….27 6.结束语………………………………….………………………………………………….25 参考文献…………………………………………………………………………………25 附录 1: 主要元器件列表 ………………………………..…………….…..25 附录 2: 原理图 ………………………………………….……………..…26 附录 3: 系统使用说明 ………………………………………………….…26 附录 4:程序清单 ……………………………………………………...……27
1. 系统设计 1.1设计任务书 设计题目:八位ISA卡的设计与编程 设计内容: 设计一块八位ISA总线扩展卡,并应用该卡实现给定的简单测控任务.ISA卡具备的基本 功能: 24位数字I/O,3个16位定时/计数器通道.选做功能: 8通道8位A/D,1通道8位D/A.简单测控任务可选下列中的一个,或自定一个:主轴瞬时转速曲线测量,步进电机控制,多点温度测量,正弦波形发生器. 设计步骤及要求: 1.查资料,明确设计任务,确定设计规格-----------------------------------------1天 2.利用PROTEL软件绘制ISA卡电路原理图---------------------------------------2天 3.利用PROTEL软件绘制ISA卡布线图-------------------------------------------2天 4.选择一个测控任务,绘制ISA卡与测控对象的系统连接图-------------------------1天 5.编写测控任务的C语言程序--------------------------------------------------2天 6.编写设计任务书 任务书包括: 封面---中文摘要---英文摘要---目录---设计任务书---设计规格---ISA卡(原理设计\布线\设计)---基于ISA卡的****----(系统设计\程序编写)---设计总结-参考文献(10篇) 说明书正文用5号宋体,不少于20页. ------------------1天 5 1.2总体设计方案 1.2.1 设计思路 根据课程设计的要求:设计一块八 位ISA总线扩展卡,并应用该卡实现给定的简单测控任务,基本功能:①.24位数字I/O,②三个十六位定时/记数通道 ;选做功能:①.八通道八位A/D,②单通道八位D/A;测控任务:基于八位ISA总线扩展卡的悬挂运动控制系统。采用的设计方案是:采用8255A实现24位数字I/O,8253实现三个十六位定时/记数通道,八通道八位A/D采用芯片ADC0809,单通道八位D/A采用芯片DAC0832 作为ISA总线扩展卡,接合外围的实验板以及驱动器等对课程设计的要求与测控任务的调试与实现 1.2.2 设计方案:(以图形的分模块实现各个功能模块) 2. 系统原理设计实现 2.1 ISA卡地址比较与译码 此部分通过74LS688与74LS138 ⑴.八位ISA总线扩展卡共有A0~A9十条地址线,可寻址1MB存储空间。地址线SA5~SA9接到比较器74LS688的P0-P4,比较器的Q0-Q4接一个五位的拨码开关,Q5、Q6、Q7接高电平。74LS688的输出作为74LS138的片选。这样,当P0~P7=Q0~Q7时,74LS688的输出为低电平,74LS138片选有效。另外,通过设置拨码开关,用户可以选择ISA卡在PC机存储器中的初始地址。 6 ⑵.地址比较与译码实现的电路图 2.2 基本功能实现 2.2.1 24位数字I/O 此部分功能通过可编程并行接口8255实现。 ⑴.8255的主要功能:有2个独立的8位并行数据通道(A、B口),2个4位的并行数据通道(C口高4位、低4位);占用4个IO端口地址(A、B、C、控制端口);A、B通道具有基本输入/输出、选通输入/输出以及双向3种传输方式;C口除了具有简单输入/输出功能外,还具有另外3个功能:其部分信号线可作为CPU与外设之间的应答联络信号;具有按位置位/复位功能;在CPU读取8255A状态时,C口又可作为状态口,具有位操作功能,选择其中的两位作为电机的方向信号。 ⑵.在ISA卡设计中,口地址选择信号线A0,A1接收及来自系统总线的信号SA0、SA1作为口地址选择信号线它们与CS一起决定8255的接口地址;S_I/OR,S_I/OW为读/写信号线,SD0~SD7为双向数据信号线,用来传送输入/输出数据、CPU发给8255A的控制字。这样就可以得到PA0~PA7,PB0~PB7,PC0~PC7输出到HEADER8255A的D_I/O0~D_I/O23总共24位数字I/O。通过排线引出就可以得到设计要求的数字I/O以便通过编程实现所要的功能 ⑶.24位数字I/O部分电路图 7 a.8255A的方式选择控制字的几点说明: ① 8255A有3种基本工作方式: 方式0:基本的输入输出方式 方式1:选通的输入输出方式 方式2:双向传输方式 ②端口A可以工作在3种工作方式中的任何一种,端口B只能工作在方式0或方式1,端口C则常常配合端口A和端口B工作,为这两个端口的输入/输出传输提供控制信号和状态信号。 ③归为同一组的两个端口可以分别工作在输入方式和输出方式,并不要求为同一种工作方。 b.端口C置1/置0控制字端口C的数据位常常作为控制位使用,所以,端口C中的各位可以用置1/置0控制字单独设置。当8255A接收到写入控制口的控制字时,会对最高位即标志位进行测试。如为1,则将此字节作为方式选择控制字写入控制寄存器;如为0,此字节就作为对端口C的置1/置0控制字来处理。 c.对C端口置1/置0控制字的几点。 ① C端口置1/置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。 ② 置1/置0控制字的D0位决定了是置1操作还是置0操作。如为1,则对端口 C中某一位置1,如为0,则置0。 ③ 置1/置0控制字的D3、D2、D1位决定了对C端口中的哪一位进行操作。 ④ 置1/置0控制字的D6、D5、D4位可为1,也可为0,它们不影响置1/置0操作。但D7位必须为0,它是对C端口置1/置0控制字的标识符。CPU可以通过对控制信号的置位/复位,实现与外设的应答联络; 也可通过读取C口的状态,来查询和判断数据口的状态 8 2.2.2.3个16位定时/记数通道 此部分功能通过可编程定时记数器8253实现 ⑴.8253的主要实现的功能:在微机应用系统中,常常要求有一些实时时钟,以实现定时或延时控制,如定时中断、定时检测、定时扫描等;还要求有计数器对外部事件计数,如外来脉冲等。这就需要用到定时/计数器。 所谓的定时/计数器其实质都是计数器,只不过在定时时是对微机内部时钟脉冲进行计数,而工作在计数器时是对微机外部输入的脉冲进行计数。如果输入的脉冲是周期相同的,也可将计数器作为定时器来使用,视具体情况而定。 ⑵. 8253数据线与ISA总线扩展卡数据总线的8位双向数据总线SD0~SD7连接,实现8253内部总线与CPU系统的8位数据总线之间的接口。CPU通过它写方式控制字到控制字寄存器,写计数初值到计数通道,读取计数通道的当前计数值。即数据总线缓冲器有三个基本功能:通过编程向8253写入确定8253工作方式的命令;向计数寄存器装入计数初值;读出当前计数值。 8253的/CS通过74LS138译码得到,接合读/写控制信号线实现CPU对8253某端口进行读/写操作。8253内部有3个独立的计数通道和1个控制字寄存器共4个端口,由A1和A0加以选择,但对控制字寄存器仅能进行写操作。各个端口的读/写操作的选择见表10. 1。 注意:控制寄存器只能写入不能读出。 ⑶.三个十六位定时/记数通道部分电路图: 对于8253实现定时的要求方法有: 1.软件方法:编制一个程序段让CPU执行,这种方法通用性和灵活性好,但占用CPU时间。 2.不可编程的硬件方法:设计一个数字逻辑电路,例如用1MHZ的有源晶振定时电路,这种方法不占用CPU时间,但通用性、灵活性差。其具体实现电路为: 9 2.3.选做功能实现 2.3.1 八通道八位A/D 此部分功能通过典型的A/D转换芯片ADC0809实现。 ⑴. ADC0809 是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度为±1/512,适用于多路数据采集系统。 ⑵. ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。图中ADC0809的CLK信号接CLK=1MHZ,基准电压Vref(+)接通过跳线选择+5VH或者+12V。一般在实际应用系统中应该接精确+5V,以提高转换精度,ADC0809片选信号0809 /CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。ADC0809的转换结束信号EOC未接, ADC0809的通道号选择线ADD-A、ADD-B、ADD-C 以及八位模拟电压输入端IN0~IN7接系统输出数据线上。 ⑶.八通道八位A/D部分电路图: 2.3.2 单通道八位D/A 此部分功能通过典型的D/A转换芯片DAC0832实现。 10 ⑴.本设计采用 DAC0832做数模转换测试设计,将数模转换器输出的模拟量可以作为模数转换器的模拟量输入,并比较D/A设定的数字量与A/D读出的数字量,从而得出设计结论。由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与ISA卡上系统总线直接接口。图中是只有一路模拟量输出, 且为单极型电压输出。DAC0832工作于单缓冲方式,它的ILE通过跳线接+5V或者+12V,/CS和/XFER相接后作为0832芯片的片选通过74LS138译码得到。这样, 对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器、模拟量输出随之而变化。 ⑵八通道八位D/A部分电路图: 3. ISA卡使用说明 3.1 ISA卡简介 8位ISA总线也称为PC总线或XT总线。共有62引脚,其中,数据线8根、地址线20根、控制线21根、状态线2根,还有时钟、电源、地线。存储器地址A19~A0,最大存储器1M。I/O地址A15~A0,最大64K。在IBM/PC及XT机上实际使用A9~A0,I/O范围为0000~03FFH。 数据线D0~D7 供主板上的接口使用,其余20 于3FFH 为插在扩展插槽中的功通道使用,其中还有部分被通用的外部设备使用.因而在进行控制卡设计时,只能选用系统和用户都没有使用的功端口地址,通常用户可使用03 00H 一03 IFH 地址,这是IBM/ PC系列微机留作实验卡用的地址.在此我们选用0300H 作为控制卡的基地址,由高位地址A 少AZ 经过译码电路产生8253 的片选信号cs 加以实现,此信号为低电平有效,8255和8253的片内寄存器地址由低位地址SA0于SAl 编码选取. 表1-2 系统使用的地址范围 地址(16进制) 设备 .000~01F DMA控制器1(8237A-5) .020~03F 主中断控制器(8259A) 040~05F 定时器(8254-2) .060~06F 键盘控制器(8042)控制、状态口 .070~07F NMI控制寄存器实时时钟 .080~09F DMA页面寄存器 .0A0~0BF 从中断控制器(8259A) .0C0~0DF DMA控制器2 (8237A-5) 11 .0E0~0FF 数学协处理器(80287) .100~1EF 用户可用空间 .1F0~1F7 硬磁盘 .1F8~1FF 用户可用空间 .200~207 游戏I/O .208~277 用户可用空间 .278~27F 并行打印口2 .280~2F7 用户可用空间 .2F8~2FF RS-232串行口2 .300~35F 用户可用空间 .360~36F 保留 .378~37F 并行打印口1 .380~38F SDLC同步通讯控制器2 .3A0~3AF BSC同步通讯控制器1 .3B0~3BF 单色显示器/打印适配器 .3C0~3CF 保留 .3D0~3DF 彩色/图形监视器适配器 .3F0~3F7 软盘控制器 .3F8~3FF RS-232串行口1 3.1 ISA卡地址分析 在设计八位ISA总线扩展卡实现简单的测控任务的时候我们总共使用了ISA卡的信号线为 a.数据线SA0~SD7 b.地址线SA0~SA9共十位地址线 c.控制线 /AEN :地址允许(译码门控信号) /IOW: I/O写信号线 /IOR: I/O读信号线 d.电源线和地线 B1:GND B3:+5V B5:-5V B7:-12V B9:+12V B10:GND B29:+5V B31:GND IBM PC/ISA总线中只使用A0~A9十位地址线来表示I/O空间,其中I/O端口可寻址范围为000~3FFH,其中系统板上使用了000~0FFH,I/O插槽上使用100~3FFH。其详细的分配情况见1.2 ISA简介的表1-2。 为了不与系统地址或其他扩展板卡上的地址发生冲突,造成严重的系统异常,所以在设计的ISA卡上的地址范围只能是(100~1F0H)、(1F9~1FFH)、(208~277H)、(280~2F7H)、(300~35FH)中的一个 。对于板卡上的地址我们可以参照自己计算机的使用情况进行规划。 在此次ISA卡设计的过程中由于使用了74LS688与774LS138对系统地址进行比较与译码从而可以通过设定让每个ISA卡在IBM/PC中得到浮动的地址空间,从而可以实现在一个IBM/PC机上外接多个ISA卡,也可以避免在设计硬件电路的时候过多的考虑对系统地址空间的分配的麻烦 地址空间设定的实现原理:比如,在这里我假设想使用(100~1F0H)间的地址,可以通过拨码开关对ISA卡进行设置,把拨码开关的状态设置Q4~Q0为01000,将SA9SA8SA7SA6SA5输出调成(01000),这样板卡上可以使用的地址范围就设定为了(100~13FH),在这个基础上介绍板卡上的地址使用情况。 12 在进行控制卡设计时,只能选用系统和用户都没有使用的功端口地址,通常用户可使用300H ~03FFH 地址,这是IBM/PC 系列微机留作实验卡用的地址 3.3 寄存器地址分配 ISA板卡上地址是指基于A0~A9的使用情况计算出来的地址,因为SA9~SA5用来对板卡进行设定,用于选通译码的是SA4SA3SA2,8255和8253的口地址选择为SA1SA0。所以只需考虑SA0~SA4地址外加拨码开关设定的ISA卡在系统中的地址值BASE 则可以得到每个芯片在使用时要访问到的寄存器。 地址信号线 : SA9 SA8 SA7 SA6 SA5 SA4 SA3 SA2 SA1 SA0 芯片:8255: BASE(通过拨码开关设置) 1 1 0 (00~11) 8253: BASE(通过拨码开关设置) 0 1 1 (00~11) 0809: BASE(通过拨码开关设置) 0 1 0 * * 0832: BASE(通过拨码开关设置) 0 0 1 * * 注: * 表示输入为逻辑0或者逻辑1均可以 根据上面的表格可以看出,只要先通过拨码开关设置ISA卡在系统中地址BASE再加上SA4~SA0的状态就可以得到具体的要访问的寄存器了,其中BASE可以选为000H~3FBH之间的除了系统地址或其他扩展板卡上的地址以外的任意值 表3-3 寄存器地址分配表(16进制) 芯片名 板上地址 实际地址 备注 8255 018H~01BH 018H~3FBH BASE+(018H~01BH) 8253 00CH~00FH 00CH~3EFH BASE+(00CH~00FH) DAC0832 004H~007H 004H~3E7H BASE+(004H~007H) ADC0809 008H~00BH 008H~3EBH BASE+(008H~00BH) 注:74LS688 门控为 /AEN 在使用的时候为了使用起来不和系统地址重叠,暂把BASE设置为300H,即:把拨码开关Q4~Q0设置为11000,对应的SA9~SA5为11000,得到的此ISA总线扩展卡在使用的时候要访问的寄存器分别为: 芯片名 ISA板卡上地址 8255 318H~31BH 8253 30CH~30FH DAC0832 304H~307H ADC0809 308H~30BH
文档下载 |