




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文 设计 基于基于 EthernetEthernet 的自动寻迹小车的自动寻迹小车 姓姓 名名 李李 叶叶 赞赞 学学 号号 0720205311907202053119 专业班级专业班级 0707 级通信工程 级通信工程 1 1 班 班 二级学院 二级学院 电子通信工程学院电子通信工程学院 指导老师指导老师 陈陈 业业 慧慧 完成时间 完成时间 2011 年年 5 月月 16 日日 安徽新华学院 07 届本科生毕业论文 设计 II 教务处制 安徽新华学院本科毕业生毕业论文 设计 承诺书 本人按照毕业论文 设计 进度计划积极开展实验 调查 研究活动 实事求是地做好实验 调查 记录 所呈交的毕业论 文 设计 是我个人在导师指导下进行的研究工作及取得的研究 成果 据我所知 除文中特别加以标注引用参考文献资料外 论 文 设计 中所有数据均为自己研究成果 不包含其他人已经发 表或撰写过的研究成果 与我一同工作的同志对本研究所做的工 作已在论文中作了明确说明并表示谢意 毕业论文 设计 作者签名 日期 2011 年 5 月 12 日 I 目 录 内 容 摘 要 1 ABSTRACT 2 基于 ETHERNET 的自动寻迹小车 3 1 前言 3 1 1 课题研究的背景和意义 3 1 2 ETHERNET简介 3 1 2 1 Ethernet 的工作原理 3 1 2 2 Ethernet 接口的工作模式 4 1 2 3 Ethernet 的优点 4 1 2 4 工业 Ethernet 技术发展趋势与前景 4 1 3 小车控制以及 ETHERNET技术技术研究现状 5 1 3 1 智能小车研究现状 5 1 3 2 Ethernet 研究现状 6 1 4 本文的研究内容和组织结构 6 2 方案设计与论证 7 2 1 系统组成方案 7 2 2 电源模块的设计方案论证与选择 7 2 3 控制器模块的设计方案论证与选择 7 2 3 1 主要特征 9 2 3 2 AT89S52 单片机的最小系统 9 2 4 电机及驱动芯片的选择与设计 10 2 4 1 电机控制模块的设计方案论证与选择 10 2 4 2 电机驱动模块的设计方案论证和选择 11 2 5 寻迹模块的设计方案论证和选择 12 2 6 显示模块的设计方案论证和选择 13 2 7系统原理图 14 II 2 8 以太网数据的传输 15 2 9 单片机串口电平转换模块设计 17 3 软件设计 18 3 1 软件及程序设计语言介绍 18 3 1 1 单片机编程软件 KEIL 18 3 1 2 电路仿真软件 PROTUES 18 3 1 3 C 语言 19 3 2 单片机软件部分 19 3 2 1 系统思维框架图 20 3 2 2 初始化程序 20 3 2 3 电机控制程序设计 21 3 2 4 寻线程序设计 24 3 2 5 显示部分的程序 25 3 2 6 主程序 main 函数设计 29 3 2 7 头函数及全局变量定义 30 4 系统的调试 31 参 考 文 献 36 附录 单片机控制自动寻迹小车程序清单 37 谢辞 44 综述 45 1 内 容 摘 要 为充分利用远程资源 实现远程控制设备 设计网络小车控制系统 通过 以太网来控制小车的基本动作 本系统采用 AT89S52 单片机作为控制系统的核 心 采用直流电机作为小车驱动电机 通过 PC 上位机利用 Ethernet 向小车单片 机发送指令 控制小车实现前进 左转 右转 倒车 停止以及自动寻迹功能 从而实现了基于 Ethernet 的远程控制 设计难点是数据的发送和接收 以及服务器端设备的控制部分 数据由 PC 机网络端口发出 经 Ethernet 传送以后利用广州致远公司的 ZNE 100TL 模块对 信息进行转换 最终处理为 RS 232 串口数据 达到控制设备的目的 测试结果 理想 关键字 Ethernet 电动车 直流电机 AT89S52 2 ABSTRACT To capitalize on the remote resources and implement the control equipment on the net the system is controlled to achive the vehicle s basic movements by the network based on the ethernet Employed AT89S52 Micro Controller Unit MCU as the core system controller direct current motors used as electric car s drive data is sent by the Personal Computers PC via ethernet as the commands to make the car achieve basic movements such as turnning left and right rewinding stopping and running following the white line The system realizes the remote controlling based on the ethernet The key technology of the design is the data s sending and receiving and the controlling of the server devices Data is sent by the PC network from the ethernet port and then is transmitted by ZNE 100TL module of zhiyuan company of guangzhou processed to be acceptable for the RS 232 serial data port The result of the test is good Keywords Ethernet Electric Car DC Motor AT89S52 3 基于 Ethernet 的自动寻迹小车 1 前言 1 1 课题研究的背景和意义 计算机和网络技术的发展 引发了远程监测 监控领域深刻的技术变革 系统结构向网络化 开放性方向发展将是技术发展的主要潮流 Ethernet 作为 目前应用最广泛的局域网技术 凭借其开放性好 成本低廉 数据传输率高等 诸多优势 在工业自动化和过程控制领域得到了越来越多的应用 依靠 Ethernet 技术实现信息共享 给办公自动化带来很大的变革 对系统设计产生 了深远的影响 而智能小车 也就是轮式机器人 最适合在那些人类无法工作的环境中工 作 该技术可以应用于无人驾驶机动车 无人生产线 仓库 服务机器人等领 域 所有这些用途正逐步渗入到工业和社会的各个层面 人类在认识自然 改 造自然 推动社会进步的过程中 不断地创造出各种各样为人类服务的工具 其中许多具有划时代的意义 作为 20 世纪自动化领域的重大成就 机器人已经 和人类社会的生产 生活密不可分 因此为了使智能小车工作在最佳状态 进 一步研究及完善其速度和方向的控制是非常有必要的 1 2 Ethernet 简介 Ethernet 以太网 指的是由 Xerox 公司创建并由 Xerox Intel 和 DEC 公 司联合开发的基带局域网规范 是当今现有局域网采用的最通用的通信协议标 准 Ethernet 包括标准的 Ethernet 10Mbit s 快速 Ethernet 100Mbit s 和 10G 10Gbit s Ethernet 采用的是 CSMA CD 访问控制法 它们都符合 IEEE802 3 1 2 1 Ethernet 的工作原理 Ethernet 采用带冲突检测的载波帧听多路访问 CSMA CD 机制 Ethernet 中节点都可以看到在网络中发送的所有信息 因此 我们说 Ethernet 是一种广 播网络 Ethernet 的工作过程如下 4 当 Ethernet 中的一台主机要传输数据时 它将按如下步骤进行 1 监听信道上是否有信号在传输 如果有的话 表明信道处于忙状态 就 继续监听 直到信道空闲为止 2 若没有监听到任何信号 就传输数据 3 传输的时候继续监听 如发现冲突则执行退避算法 随机等待一段时间 后 重新执行步骤 1 当冲突发生时 涉及冲突的计算机会返回到监听信道状 态 注意 每台计算机一次只允许发送一个包 一个拥塞序列 以警告所有的 节点 4 若未发现冲突则发送成功 所有计算机在试图再一次发送数据之前 必 须在最近一次发送后等待 9 6 微秒 以 10Mbps 运行 1 2 2 Ethernet 接口的工作模式 以太网网卡可以工作在两种模式下 半双工和全双工 半双工 半双工传输模式实现 Ethernet 载波监听多路访问冲突检测 传统 的共享 LAN 是在半双工下工作的 在同一时间只能传输单一方向的数据 当两 个方向的数据同时传输时 就会产生冲突 这会降低 Ethernet 的效率 全双工 全双工传输是采用点对点连接 这种安排没有冲突 因为它们使 用双绞线中两个独立的线路 这等于没有安装新的介质就提高了带宽 例如在 上例的车站间又加了一条并行的铁轨 同时可有两列火车双向通行 在双全工 模式下 冲突检测电路不可用 因此每个全双工连接只用一个端口 用于点对 点连接 标准 Ethernet 的传输效率可达到 50 60 的带宽 全双工在两个方 向上都提供 100 的效率 1 2 3 Ethernet 的优点 应用广泛 通信速率高 成本低廉 资源共享能力强 可持续发展潜力大 5 1 2 4 工业 Ethernet 技术发展趋势与前景 Ethernet 具有应用广泛 价格低廉 通信速率高 软硬件产品丰富 应用 支持技术成熟等优点 目前它已经工业企业综合自动化系统中资源管理层 执 行制造层到了广泛应用 并呈现向下延伸直接应用于工业控制现场趋势 从目 前国际 国内工业 Ethernet 技术发展来看 目前工业 Ethernet 制造执行层已到 广泛应用 并成为事实上标准 未来工业 Ethernet 将工业企业综合自动化系统 中现场设备之间互连和信息集成中发挥越来越重要作用 1 3 小车控制以及 Ethernet 技术技术研究现状 1 3 1 智能小车研究现状 随着微电子技术的不断发展 微处理器芯片的集成程度越来越高 单片机 已可以在一块芯片上同时集成 CPU 存储器 定时器 计数器 并行和串行接 口 看门狗 前置放大器 A D 转换器 D A 转换器等多种电路 这就很容易 将计算机技术与测量控制技术结合 组成智能化测量控制系统 这种技术促使 机器人技术也有了突飞猛进的发展 单片机技术作为自动控制技术的核心之一 被广泛应用于工业控制 智能仪器 机电产品 家用电器等领域 机器人的发展大致经过三代的演变 第一代是可编程的示教再现型机器人 它能依靠人们给予程序 重复进行多种操作 由于其不具有传感器的反馈信息 因此不能在作业过程中从外界不断获取信息 来改善其自身的行动品质 故其 应用范围和精度受到限制 第二代是具有一定感觉功能和自适应能力的离线编 程机器人 这种机器人配备了简单的内 外部传感器 能对自身的实际位置 方向等进行测量 能通过 视觉 触觉 等传感能力对外部环境进行实际 探测 从而由这些反馈信息在事先编好的算法和程序指导下对操作过程进行调 整 它与这几年迅速发展起来的传感器 微机技术和仿生学 控制理论等有密 切关系 第三代机器人是能感知外界环境与对象物并具有对复杂信息进行准确 处理 对自己行为做出自主决策能力的智能机器人 这种机器人装有多种传感 器 并能将多种传感器探测到的信息进行 融合 多传感器的信息融合 并做 出相应决策 自主完成某一项任务 它能有效地适应变化的环境 具有很强自 适应能力 是具有自学习和自治 自主决策 功能的智能机器人 目前机器人的 研究正向着复杂型 智能型 自主型发展 机器人与人类生活联系得越来越紧 6 密 作为现代机器人中一个重要分支的移动式机器人是一个相当活跃的研究领 域 1 3 2 Ethernet 研究现状 目前高档数控系统大多采用现场总线来实现数控系统网络化和数字化的要 求 现场总线一般采用专用硬件 虽然实时性好 但标准过多互不兼容 硬件 成本高 传输速度低 与管理级 如企业信息化 很难兼容 现场总线也已经 逐步向 Ethernet 靠拢 Ethernet 的飞速发展 以其低成本 高稳定和可靠性 应 用广泛和支持技术成熟的优点已经成为通信领域的事实标准 但其在商用上的 成功并不能掩盖其在工业应用中的缺陷 将 Ethernet 应用于控制层和现场层的 数控系统上 由于其 MAC 层协议采用 CSMA CD 具有排队延迟不确定的缺 陷 使之无法在工业控制中得到有效使用 响应时间的 不确定性 即实时 性差 和系统内各模块的 不同步性 成为了阻碍 Ethernet 技术 一网到底 的瓶颈 随着网络技术的发展 新的数控机床大都提供了 Ethernet 接口 目前 Ethernet 主要用于把数控机床接入管理网络 有些实现现场总线通信 但在设 备级还存在着无法实现信息网络发布 传输速度慢 实时性差 可靠性差等缺 点 Ethernet 技术已经被工业自动化系统广泛接受 Ethernet 技术从现场向设备 渗透是一个大的趋势 1 4 本文的研究内容和组织结构 本文以小车的控制为研究对象 以 AT89S52 单片机为核心 选择直流电 机为驱动电机 以 ZNE 100TL 模块为 Ethernet 串口数据转换模块 设计了一个 基于 Ethernet 的远程小车控制系统 根据题目的要求 确定如下方案 通讯部分 分为 Ethernet 口控制和串口直接控制两部分 Ethernet 口控制部 分利用 PC 上位机定义网络端口 Port80 通过 Ethernet 将数据传输到 ZNE 100TL 模块中 利用模块将网络信号转化为串口信号 将指令送入单片机中对 小车实现控制 串口部分则是直接利用 PC 上位机串口 COM 对小车进行数据和 命令的传输 寻迹部分 利用反射式光电黑白线传感器 实现对小车运行位置的检测 并将测量数据传送至单片机进行处理 然后由单片机根据所检测的各种数据进 行对小车的控制并且实现状态的反馈显示 7 显示部分 利用 8 8 LED 点阵实现显示功能 图形是通过行扫描 对应直 接输入 8 位列信号最后形成图形的 对应小车不同的运行状态 形成不同的箭 头图形 实时显示小车运行的状态和方向 8 2 方案设计与论证 2 1 系统组成方案 小车控制系统总体结构如图 2 1 所示 以 AT89S52 单片机为控制核心 主 要由电源模块 电动机驱动模块 寻迹线探测模块 平衡状态检测模块 信息 显示模块组成 主要完成小车按规定路径稳定行驶 并能具有保持平衡功能 同时对行程中的有关数据进行处理显示 系统工作时单片机接收传感器的输出 信号后输出控制信号是小车在轨道上寻迹行使 同时对行程中的有关数据进行 处理显示 图 2 1 系统框图 2 2 电源模块的设计方案论证与选择 方案一 采用 4 节 1 5V 干电池供电 电压达到 6V 经 7805 稳压后给直 流电机 单片机系统和其他芯片供电 但干电池电量有限 使用大量的干电池 给系统调试带来很大的不便 方案二 采用 2 节 4 2V 可充电式锂电池串联共 8 4V 经过 7805 稳压后给 直流电机 单片机系统和其他芯片供电 锂电池的电量比较足 并且可以充电 重复利用 因此 这种方案比较可行 但锂电池的价格过于昂贵 方案三 采用 USB 供电 由于小车运行的路线是固定的 距离也不是很远 使用 USB 延长线完全可以胜任 采用 USB 供电即节省了使用电池的费用 也 能保证电压的稳定性还能减轻车体的重量 所以选择方案三 采用 USB 供电 2 3 控制器模块的设计方案论证与选择 方案一 采用 FPGA 作为系统主控器 FPGA 可实现各种复杂逻辑功能 光电传感器检测 小车控制电路 LED 点阵显示 上位 PC 机 ZNE 100TL RS 232 RS 232 以太网 AT89S52 单 片 机 9 规模大 集成度高 体积小 稳定性好 IO 资源丰富 易于进行功能扩展 处 理速度快 但适用于大规模实时性要求较高的系统 价格高 编程实现难度大 本系统只需完成信号检测和电机驱动的控制 逻辑功能简单 对控制器的数据 处理能力要求不高 故不选择此方案 方案二 采用可编程逻辑器件 CPLD 作为控制器 CPLD 可以实现各种复 杂的逻辑功能 规模大 密度高 体积小 稳定性高 IO 资源丰富 易于进行 功能扩展 采用并行的输入输出方式 提高了系统的处理速度 适合作为大规 模控制系统的控制核心 但本系统不需要复杂的逻辑功能 对数据的处理速度 的要求也不是非常高 且从使用及经济的角度考虑我们放弃了此方案 方案三 采用 Atmel 公司的 AT89S52 单片机作为主控制器 AT89S52 是一 个低功耗 高性能 8 位单片机 片内含 8 KB 在系统可编程 Flash 片内程序存储 器 256 字节 RAM 片上 Flash 允许程序存储器在系统可编程 亦适于常规编 程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使得 AT89S52 为众多嵌入式控制应用系统提供高灵活 超有效的解决方案 32 个外 部双向输入 输出 I O 口 5 个中断优先级 2 层中断嵌套中断等 价格便宜 使用方便 编程实现难度低 适合用来实现本系统的控制功能 由于 AT89S52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系 统可编程 Flash 存储器 使用 Atmel 公司高密度非易失性存储器技术制造 与 工业 80C51 产品指令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编 程 亦适于常规编程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使得 AT89S52 为众多嵌入式控制应用系统提供高灵活 超有效的解决方 案 故采用方案三 AT89S52 单片机作为我们的主控制器 下面对 AT89S52 如 图 2 2 作简要介绍 10 图 2 2 AT89S52 单片机 2 3 1 主要特征 8 位字长的 CPU 可在线 ISP 编程的 8KB 片内 Flash 存储器 256B 的片内数据存储器 可编程的 32 根 I O 口线 P0 P3 4 0V 5 5V 电压操作范围 3 个可编程定时器 双数据指针 DPTR0 和 DPTR1 具有 8 个中断源 6 个中断矢量 2 级优先权的中断系统 可在空闲和掉电两种低功耗方式运行 3 级程序锁定位 全双工的 UART 串行通信口 1 个看门狗定时器 WDT 具有断电标志位 POF 振荡器和时钟电路的全静态工作频率为 0 30MHz 与 MCS 51 单片机产品完全兼容 2 3 2 AT89S52 单片机的最小系统 由于 AT89S52 单片机是高性能单片机 同时受引脚数目的限制 所以有部 11 分引脚具有第二功能 最小系统如图 2 3 所示 图 2 3 AT89S52 单片机最小系统图 2 4 电机及驱动芯片的选择与设计 2 4 1 电机控制模块的设计方案论证与选择 方案一 选用步进电机 步进电机是一种将电脉冲信号转换成相应的角位 移或直线位移的数字 模拟装置 通俗一点讲 当步进驱动器接收到一个脉冲信 号 它就驱动步进电机按设定的方向转动一个固定的角度 及步进角 可以 通过控制脉冲个数来控制角位移量 从而达到准确定位的目的 同时可以通过 控制脉冲频率来控制电机转动的速度和加速度 从而达到调速的目的 步进电 机分三种 永磁式 PM 反应式 VR 和混合式 HB 利用步进电机的 准确定长步进性能方便地实现调速和转向 可以准确的测量速度 路程 及时 间 简化编程和硬件连接的工作量 虽然采用步进电机有诸多优点 步进电机 的输出力矩较低 随转速的升高而下降 且在较高转速时会急剧下降 不能满足 12 小车爬坡的要求 且成本高 过于高的精度对本实验来说十分浪费 方案二 选用减速直流电机 定义输出或输入为直流电能的旋转电机 称 为直流电机 它是能实现直流电能和机械能互相转换的电机 直流电机的控制 方法比较简单 只需给电机的两根控制线加上适当的电压即可使电机转动起来 电压越高则电机转速越高 对于直流电机的速度调节 可以采用改变电压的方 法 也可采用 PWM 调速方法 PWM 调使加在直流电机两端的速就是电压为方 波形式 通过改变方波的占空比实现对电机转速的调节 减速直流电机的优点 是转动力矩大 体积小 重量轻 装配简单 使用方便 而且造价比较低 适 合一般的小型系统使用 经比较验证 显然方案 1 的步进电机的机械结构复杂 而且性价比不高 而方案 2 的直流电机性能比较好 由于本系统对时间的要求不高 采用减速直 流电机完全可以满足要求 因此采用方案 2 选用性价比相对比较高的减速直 流电机 2 4 2 电机驱动模块的设计方案论证和选择 方案一 基于直流电机的 L298N 驱动模块 L298N 是一款专门用于驱动电 动机的芯片 具有高集成度 高功率的特点 其输出电流为 2A 最高电流 4A 最高工作电压 50V 可以驱动大的负载 如大功率直流电机 步进电机等 较少的外围电路 仅需要保护用的二极管 便可以很好地驱动大功率的电机 其输入端可以与单片机直接相联 从而很方便地受单片机控制 当驱动直流电 机时 可以直接控制两路电机 并可以实现电机正转与反转 实现此功能只需 改变输入端的逻辑电平 用该芯片作为电机驱动 操作方便 稳定性好 而且 模块体积小 性能优良 方案二 对于直流电机用分立元件构成驱动电路 由分立元件构成电机驱 动电路 结构简单 价格低廉 在实际应用中应用广泛 但是这种电路工作性 能不够稳定 方案三 采用专用集成电路芯片 LM18200T 驱动电机 用单片机控制 LM18200T 的输入使之工作在占空比可调的开关状态 精确调整电动机转速 电子开关的速度很快 稳定性也极强 采用集成电路芯片 节省空间和元器件 缺点是小车启动时 由于突然施加的电压比较高 车轮容易打滑 而且价格较 13 昂贵 方案四 采用继电器对电动机的开或关进行控制 通过开关的切换对小车 的速度进行调整 这个方案的优点是电路较为简单 缺点是继电器的响应时间 慢 机械结构易损坏 寿命较短 可靠性不高 综上所述 我们选择方案一 L298N 及外围电路作为电机驱动模块 下面 对 L298N 驱动芯片作简要介绍 图 2 4 是利用 L298N 驱动芯片的电机电路 其硬件包括 L298N 芯片 4 个 5V 的稳压管 2 个 0 1uF 的电解电容 2 个 100uF 的电解电容 工作时 单片 机向 L298N 的 ENA ENB 两口发送 PWM 波来控制左右两电机的转速 而 IN1 IN4 四个接口则用来选择电机的旋转方向 如当 IN1 为高电平 IN2 为低 电平时 OUT 输出稳定的 5V 电压 OUT2 输出 0V 电压 使电机 A 正向旋转 控制小车前进 由于本设计所用到的 AT89S52 单片机功能 89C51 单片机完 全具备 故本设计电路图中以 89C51 单片机代替 AT89S52 单片机 下同 图 2 4 电机驱动电路 2 5 寻迹模块的设计方案论证和选择 这一模块是整个系统的核心模块之一 主要功能是完成小车寻着路面黑面 上的白线行驶 保证小车直行 从而保证了平衡时的精确度 也可以很好地完 成让小车一直在板上行驶的要求 14 方案一 采用 CCD 单色摄像头 使用 CCD 传感器 可以获取大量的图像 信息 可以全面完整的掌握路径信息 可以进行较远距离的预测和识别图像复 杂的路面而且抗干扰能力强 目前做的比较成熟 效果相当好 但是对于本项 目来说 使用 CCD 传感器也有其不足之处 首先使用 CCD 传感器需要有大量 图像处理的工作 需要进行大量数据的存储和计算 因为是以实现小车视觉为 目的 实现起来工作量较大 处理电路复杂且成本高 方案二 采用红外发射接收对管传感器 红外发射管发出红外线 当发出 的红外线照射到白色的平面后反射 若红外接收管能接收到反射回的光线则检 测出白线继而输出低电平 若接收不到发射管发出的光线则检测出黑线继而输 出高电平 该传感器虽然灵敏度高 且容易购买 但是集成度比较低 需要辅 助电路才能返回 TTL 电平 因此造成不便 方案三 用光敏电阻组成光敏探测器 光敏电阻的阻值可以跟随周围环境 光线的变化而变化 当光线照射到白线上面时 光线发射强烈 光线照射到黑 线上面时 光线发射较弱 因此光敏电阻在白线和黑线上方时 阻值会发生明 显的变化 将阻值的变化值经过比较器就可以输出高低电平 因此光敏电阻在 跷跷板白线上方时阻值会发生明显变化 而且有集成度高的封装元件 且价格 便宜 而且这种方案受光照影响不大 工作比较稳定 经过比较 我们在这一模块采用方案 3 使用 TK 20 黑白线检测传感器 将三个传感器固定在小车前端的底盘上 根据黑线吸收光 白纸反光的原理从 而输出不同的门限 2 6 显示模块的设计方案论证和选择 方案一 采用 LCD 液晶显示 优点是显示信息丰富 功耗低 体积小 画 面效果好 分辨率高 人机界面友好 但液晶需要利用控制芯片创建字符库 编程量大 占用资源多 可视性较差 成本也比较高 方案二 采用 LED 数码管显示 优点是对外界环境要求比较低 显示明显 亮度较高 造价低廉 编程控制容易 如果接口不够用 还可以使用串并转换 芯片进行驱动 缺点是显示信息比较少 没有 LCD 显示的丰富 由于本系统只用显示运行状态 且 LED 数码管质量比较轻 利于小车行走 可视性好 成本低 控制方便 故选择 1 个 8 8 LED 数码管作为系统的显示部 15 分 当小车寻迹时 会显示小车的运动动作如直行时 显示向前的箭头 左转 时显示左转的箭头等 点阵式 LED 显示器采用逐行扫描式工作 要使点阵显示出一个的字符的编 程方法是 首先向字形行扫描码锁存器输出行扫描码 选通第一行 同时向字 符锁存器列写入该行的字型码 完成一行的扫描 然后 按相同的方式选通第 二行 写第二行的字型码 由此类推 逐行扫描 直到写完所有行的字型码 完成一个字符的一遍扫描 图 2 5 是本文设计的显示电路模块 其包括的硬件有 8 8 LED 点阵 74LS245 LED 驱动芯片 单片机 I O 口输出的电压虽然在理论上能够达到 5V 但是加上负载以后往往不能达到这样的数值 这也就是电机 LED 都需要 加驱动电路的原因 本系统要使用 8 8 LED 点阵显示小车运行的状态 所以必 须加入驱动电路 驱动芯片为 74LS245 加入驱动之后就可以正常显示了 否 则 LED 灯不会被点亮 图 2 5 显示电路 2 7 系统原理图 整个系统由显示模块 电机驱动模块 串口接收模块 寻迹传感器接收模 块组成 系统通过串口接收上位 PC 传送来的指令 然后由单片机对指令进行 16 分析 再进一步对电机驱动模块输出控制电平 实现对小车的控制 当单片机 接收到指令自动寻迹时 单片机进入寻迹子程序 此时由传感器对黑白线进行 检测 并自动控制电机的转动同时显示模块同步对小车运行的方向进行显示 而每当单片机接收到指令时 单片机向 PC 机发送反馈数据 图 2 6 中左下角 用开关状态代替传感器检测的高低电平 图 2 6 系统电路原理图 2 8 以太网数据的传输 以太网数据传输模块是本系统的核心模块之一 而系统的以太网功能是通 过 ZNE 100TL 模块实现的 ZNE 100TL 是广州致远电子有限公司开发的一款 多功能型嵌入式以太网串口数据转换模块 它内部集成了 TCP IP 协议栈 用 户利用它可以轻松完成嵌入式设备的网络功能 节省人力物力和开发时间 使 产品更快的投入市场 增强竞争力 ZNE 100TL 模块集成 10 100M 自适应以太网接口 串口通信最高波特率高 达 230 4Kbps 具有 TCP Server TCP Client UDP 和 Real COM driver 等多种 工作模式 支持最多四个连接 支持域名访问等功能 17 一般情况下 模块可以供用户进行二次开发 使用户的产品从串口升级到 以太网接口 而评估板加模块的一般应用是 使用它们做一个桥接的功能 以 太网连接到网络上 然后串口连接到用户的设备 让 PC 机可以通过网络来控 制用户的设备 如图 2 7 所示 图 2 7 以太网数据传输示意图 在本设计中 设置其波特率为 9600b s 考虑到单片机于 PC 本身的通讯 开始位为 1 位 停止位为 1 位 工作方式为 TCP Sever 在 TCP 服务器 TCP Server 模式下 ZNE 100TL 模块不会主动与其它设备连接 它始终等待客户 端 TCP Client 的连接 在与客户端建立 TCP 连接后即可进行双向数据通信 通讯的核心是 IP 地址 通讯端口等通讯设置的有关配置 在本设计中使用 ZNE 100TL 以太网转串口模块默认的 IP 地址为 192 168 0 178 子网掩码 255 255 255 0 由于本模块需要建立 PC 和 ZNE 100TL 在同一网段 设定 PC 机情况如下 IP 地址 193 168 0 55 子网掩码 255 255 255 0 默认网关 192 168 0 1 DNS 服务器 192 168 0 2 备用 DNS 服务器 192 168 0 1 另外 一项重要的属性是端口 PC 的通讯端口的配置 一共有 1 65534 端口可以设置 18 但是在 TCP 和 UDP 协议中有一些端口已经被占用 如 TCP 端口多通道服务器 占用端口 1 ECHO 占用端口 7 网络状态占用端口 15 TELNET 占用端口 23 等等 在本设计中设定网络参数如下 网页端口 80 命令端口 3003 而串口设 定工作端口 4001 TCP Turo 启用 TCP 连接数 1 TCP 目标端口 6001 TCP 目标 IP 192 168 0 1 事实上 ZNE 100TL 的配置十分方便 有三种方式 可以用模块安装盘自带 的 ZNetCom 软件直接配置 也可以在 WINDOWS 自带的超级终端里面使用配 置 更可以在 IE 浏览器中输入模块的 IP 地址 链接后可以直接配置 2 9 单片机串口电平转换模块设计 由于 AT89S52 单片机本身提供了一组全双工串行传输口 由 TXD 引脚来 传送串行数据 而由 RXD 引脚来接收数据 可是其工作逻辑电平皆为 TTL 电 平 0V 5V 而 ZNE 100T 模块配置的是 RS 232 标准串行接口 电平为 12V 12V 二者的电气规范不一致 因此要完成单片机与 PC 机的数据 通信 必须对单片机输出的 TTL 电平进行电平转换 本系统采用 MAXIM 公 司生产的 MAX232 电平转换芯片来实现 RS 232 标准接口通信 电路原理图如 图 2 8 图 2 8 RS 232 串口以及 MAX232 原理图 通讯时 上位机向单片机发送申请使单片机的接受端为有效 这时单片机 允许接收上位机指令 而后上位机发送指令 单片机根据指令进行对电机的控 制 当控制完成后向上位机进行数据的发送 反馈运行的状态 并且关闭接收 端 一直等待上位机再次打开单片机的接收端才会接收数据 19 3 软件设计 软件在一个智能系统中扮演着举足轻重的角色 软件设计的好坏直接影响 着整个系统的性能 目前已经有很多种嵌入式实时多任务操作系统 如 Linux RTX51 及 UC OS 等 可以更有效的利用系统的各种资源 简化编程 缩短开发周期 鉴于本系统采用 AT89S52 单片机为控制器 本身的各种资源都 很有限 引入一个操作系统代价太大 所以考虑直接来优化系统的软件结构 同样可以达到 多任务 实时 等要求 3 1 软件及程序设计语言介绍 3 1 1 单片机编程软件 KEIL Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件 开发系统 与汇编相比 C 语言在功能上 结构性 可读性 可维护性上有明 显的优势 因而易学易用 用过汇编语言后再使用 C 来开发 体会更加深刻 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具 全 Windows 界面 另外重要的一点 只要看一下编译后生成的汇编代码 就能体 会到 Keil C51 生成的目标代码效率非常之高 多数语句生成的汇编代码很紧凑 容易理解 在开发大型软件时更能体现高级语言的优势 C51 工具包中的 uVision 与 Ishell 分别是 C51 for Windows 和 for Dos 的集成 开发环境 IDE 可以完成编辑 编译 连接 调试 仿真等整个开发流程 开 发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件 然后分别由 C51 及 A51 编译器编译生成目标文件 OBJ 目标文件可由 LIB51 创建生成库文件 也可以与库文件一起经 L51 连接定位生成绝对目标文件 ABS ABS 文件由 OH51 转换成标准的 Hex 文件 以供调试器 dScope51 或 tScope51 使用进行源代 码级调试 也可由仿真器使用直接对目标板进行调试 也可以直接写入程序存 贮器 如 EPROM 中 3 1 2 电路仿真软件 PROTUES Protues 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件 它不 仅具有其它 EDA 工具软件的仿真功能 还能仿真单片机及外围器件 它是目前 最好的仿真单片机及外围器件的工具 虽然目前国内推广刚起步 但已受到单 20 片机爱好者 从事单片机教学的教师 致力于单片机开发应用的科技工作者的 青睐 Proteus 是世界上著名的 EDA 工具 仿真软件 从原理图布图 代码调试 到单片机与外围电路协同仿真 一键切换到 PCB 设计 真正实现了从概念到产 品的完整设计 是目前世界上唯一将电路仿真软件 PCB 设计软件和虚拟模型 仿真软件三合一的设计平台 其处理器模型支持 8051 HC11 AVR ARM 8086 PIC10 12 16 18 24 30 DsPIC33 和 MSP430 等 2010 年即将增加 Cortex 和 DSP 系列处理器 并持续增加其他系列处理器 模型 在 Protues 绘制好原理图后 调入已编译好的目标代码文件 HEX 可 以在 Protues 的原理图中看到模拟的实物运行状态和过程 Protues 是单片机课 堂教学的先进助手 Protues 不仅可将许多单片机实例功能形象化 也可将许多 单片机实例运行过程形象化 前者可在相当程度上得到实物演示实验的效果 后者则是实物演示实验难以达到的效果 它的元器件 连接线路等却和传统的 单片机实验硬件高度对应 这在相当程度上替代了传统的单片机实验教学的功 能 例 元器件选择 电路连接 电路检测 电路修改 软件调试 运行结果 等 随着科技的发展 计算机仿真技术 已成为许多设计部门重要的前期设 计手段 它具有设计灵活 结果 过程的统一的特点 可使设计时间大为缩短 耗资大为减少 也可降低工程制造的风险 3 1 3 C 语言 C 语言是一种结构化语言 它是一种结构紧凑 使用方便 程序执行效率 高的编程语言 它有 9 种控制语句 32 个关键字和 34 种运算符 易于调试和 维护 C 语言的表现能力和处理能力极强 它不仅具有丰富的运算符和数据类 型 便于实现各类复杂的数据结构 它还可以直接访问内存的物理地址 进行 位 bit 一级的操作 由于 C 语言实现了对硬件的编程操作 因此 C 语言集高级 语言和低级语言的功能于一体 既可用于系统软件的开发 也适合于应用软件 的开发 此外 C 语言还具有效率高 可移植性强等特点 3 2 单片机软件部分 单片机软件主要分为三大部分 单机的控制 传感器信号的接收和处理 21 LED 点阵的反馈显示 三者相互关联 密不可分 3 2 1 系统思维框架图 整个系统软件开发的框架图如图 3 1 所示 图 3 1 总框架图 双向箭头所表示的是指令的传输和反馈 而单项箭头仅表示的指令的传输 3 2 2 初始化程序 在程序中负责初始化单片机系统电机和串口的定时器以及单片机的波特率 等属性 详细程序如下 函数功能 对系统进行初始化 包括定时器初始化和变量初始化 void init sys void 系统初始化函数 en1 1 22 en2 1 定时器初始化 串口中断及其附带定时器初始化程序 void init UART void 定时器初始化 SCON 0 x50 UART in mode 1 8 位 REN 1 TMOD 0 x20 T1 工作方式 2 TH1 0 xFD 9600 Bd at 11 059MHz TL1 0 xFD 9600 Bd at 11 059MHz TR1 1 Timer 1 run 3 2 3 电机控制程序设计 常规的设置方法是利用某一个定时器对电机进行 PWM 的控制以达到控制 电机转速的原理 但是本设计对时间的要求并不严格 可以取消 PWM 控制部 分 使单片机控制电机全速运行 这样对电机的延时设定有比较高的要求 电 机控制主要分成三种状态 运行 RUN 暂停 PAUSE 停止 STOP 其中 暂停用于转弯 停止用于到达终点时 电机控制部分 左边电机运行控制子程序 void Lrun INT16U speed INT16U cnt cnt speed en1 1 s1 1 s2 0 lDelay cnt 23 左边电机停止控制子程序 void LSTOP void en1 0 左边电机转弯控制子程序 void Lpause INT16U adjust INT16U cnt cnt adjust en1 0 lDelay cnt 左边电机后退控制子程序 void Lback INT16U speed INT16U cnt cnt speed en1 1 s1 0 s2 1 lDelay cnt lDelay cnt en1 0 右边电机运行控制子程序 void Rrun INT16U speed INT16U cnt 24 cnt speed en2 1 s3 1 s4 0 lDelay cnt 右边电机停止控制子程序 void RSTOP void en2 0 右边电机转弯控制子程序 void Rpause INT16U adjust INT16U cnt cnt adjust en2 0 lDelay cnt 右边电机后退控制子程序 void Rback INT16U speed INT16U cnt cnt speed en2 1 s3 0 s4 1 lDelay cnt lDelay cnt 25 en2 0 3 2 4 寻线程序设计 寻线是系统的主要组成部分之一 寻线程序设计的好坏直接影响到系统的 效率和稳定性 其中 P3 5 P3 6 P3 7 引脚分别接寻线传感器输入 检测到三 个信号之后进行反应选择 传感器检测轨迹 检测到黑时返回高电 sbit follow L P3 5 LEFT SENSER sbit follow M P3 6 MID SENSER sbit follow R P3 7 RIGHT SENSER 寻迹函数 follow void void follow void INT8U temp temp follow L temp temp 1 follow M temp temp 0 lyz P0 tab cnta 送行扫描码 P1 lyztab cntb cnta 送列显示码 cnta lDelay 256 if cnta 8 cnta 0 timecount if timecount 330 定时一秒 timecount 0 cntb if cntb 5 28 cntb 0 左转显示子程序 void LED88LEFT INT16U temp INT8U cnta INT8U left for left temp left 0 left P0 tab cnta P1 midARROW cnta cnta if cnta 8 cnta 0 lDelay 386 右转显示子程序 void LED88RIGHT INT16U temp INT8U cnta INT8U right for right temp right 0 right P0 tab cnta P1 backARROW cnta cnta if cnta 8 cnta 0 lDelay 386 前进显示子程序 void LED88MID void INT8U cnta 29 INT8U mid for mid 8 mid 0 mid P0 tab cnta P1 rightARROW cnta cnta if cnta 8 cnta 0 lDelay 400 倒车显示子程序 void LED88BACK void INT8U cnta INT8U back for back 16 back 0 back P0 tab cnta P1 leftARROW cnta cnta if cnta 8 cnta 0 lDelay 500 停止显示子程序 void LED88STOP void INT8U cnta INT8U stop for stop 300 stop 0 stop P0 tab cnta P1 stopARROW cnta cnta if cnta 8 30 cnta 0 lDelay 500 3 2 6 主程序 main 函数设计 Main 函数是系统的入口函数 其他函数均由 main 函数调用 故 main 的作 用可见一斑 主程序部分是控制串口命令的接收 负责将不同的指令传达给单 片机 核心指令选择部分是通过 case 函数实现的 程序设计如下 主函数 main void main void init sys 系统初始化 while 1 INT8U temp init UART while 1 while RI RI 0 temp SBUF switch tempen2 1 s1 1 s2 0 s3 1 s4 0 直行不停 break case 0 x02 Rpause 33 Lrun 38 左转 break case 0 x03 Lpause 33 Rrun 38 右转 break case 0 x04 LSTOP RSTOP 停止 break case 0 x05 Lback 40 Rback 40 倒车 31 break case 0 x06 do follow while temp 0 x05 break case 0 x09 LED88START
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年各类产业园区笔试面试题目
- 体育教学技能训练课件
- 2025年煤气工程师岗位面试宝典专业知识题预测与解答技巧
- 商业计划书暨路演(模版)
- 农业信息技术教学课件
- 用药安全警示案例课件
- 江苏苏州2011-2020年中考满分作文90篇
- 河北省张家口市桥西区2024-2025学年度第二学期期末考试七年级语文试卷(含答案)
- 《雨林》课文教学课件
- 新解读《GB-T 35003 - 2018非易失性存储器耐久和数据保持试验方法》
- 《百变扭扭棒》大班艺术课件
- FZT 73013-2017 针织泳装行业标准
- 软件开发功能验收表
- 生产部门年度经营计划
- 售后工程师的安全意识与操作规范
- 热力公司入户维修培训课件
- 给予肠内营养支持品管圈课件
- 2024-2025年全国初中化学竞赛试卷及答案
- 躺平与内卷现象看法
- 浆膜腔积液细胞病理学国际报告系统
- “盘中盘”模式解析
评论
0/150
提交评论