基于单片机的无线电子点菜系统硬件方案设计
3.4 无线数据传输模块和开发板的PCB图设计
PCB板是一块绝缘材料,在表面合理安放各种电子元件,并安排连接电子元件引脚间的铜膜导线,在不同的表面间有连接不同表面的铜导孔。
随着电子技术的不断发展进步,PCB在复杂程度和应用范围方面都有了长足的进步,按复杂程度来分,可以将PCB板分为3类:1.单面印刷电路板;2.双面印刷电路板;3.多层印刷电路板。为了方便布线,本系统所用的开发板和无线数据传输模块均为双层印刷电路板。
PCB的生成主要由四个过程组成:其一是原理图的生成;其二是根据已经生成的原理图产生对应的网络表,网络表是PCB图和原理图的纽带;第三步是新建一个PCB文件,并导入网络表;第四步是将合理布局元件,并用导线将元件的引脚连起来。
3.4.1 开发板的PCB图
将开发板的原理图按照以上的步骤生成相应的PCB图。如图3.9所示:
在PCB图设计的所有过程中,原理图在上一节已经生成。网络表的生成也比较简单。由于PCB图上使用元件的封装来代表元件,因此原理图中各个元件都要明确有自己的封装方式,而且在绘制PCB图前必须将用到的封装所在的封装库调入。否则,在调入网络表的过程中将会出现元件丢失的错误。
图3.9 开发板的PCB图
开发板上主要用到两个封装库:Advpcb.ddb和Miscellaneous.ddb.另外由于USB电源接口,电源开关,键盘和四位八段数码管没有对应的封装,因此需要使用元件库编辑器建立新元件封装。图3.10为键盘封装,图3.11为USB封装,图3.12为开关封装,图3.13为四位八段数码管封装。
图3.10 键盘封装 图3.11 USB封装
图3.12 开关封装 图3.13 四位八段数码管封装
各个元件的封装的引脚的序号必须和原理图中引脚的序号保持一致,不然将会在调如网络表过程中出现管脚丢失的错误。
下面再重点分析一下布线的过程。
布线是完成产品设计的重要步骤,可以说前面的准备工作都是为它而做的,在整个PCB中,以布线的设计过程限定最高,技巧最细、工作量最大。本系统的PCB布线为双面布线,布线的方式有两种:自动布线及交互式布线。但由于自动布线效果不好,往往实际的效果和预计效果有很大的出入,因此全部使用交互式布线。布线过程中充分考虑到如何降低元件字之间互相的干扰。
首先根据印制线路板电流的大小,尽量加租电源线宽度,减少环路电阻,它们的关系是:地线>电源线>信号线。同时使电源线、地线的走向和数据传递的方向一致,这样有助于增强抗噪声能力。线条有讲究:有条件做宽的线决不做细;高压及高频线应园滑,不得有尖锐的倒角,拐弯也不得采用直角。
由于采用双层设计,因此不可避免地将会使用到过孔。过孔太多,沉铜工艺稍有不慎就会埋下隐患。所以,设计中应尽量减少过线孔。此外,应该合理布置电源滤波/退耦电容:一般在原理图中仅画出若干电源滤波/退耦电容,但未指出它们各自应接于何处。其实这些电容是为开关器件(门电路)或其它需要滤波/退耦的部件而设置的,布置这些电容就应尽量靠近这些元部件,离得太远就没有作用了。
3.4.2 无线数据传输模块的PCB图
由于无线数据传输模块的核心芯片工作在2.4GHZ,因此在设计PCB图时对干扰的控制要格外重视。在PCB设计时,必须考虑到各种电磁干扰,注意调整电阻、电容和电感的位置,特别要注意电容的位置。
nRF2401的PCB为双层板,底层一般不放置元件,顶层的空余地方敷上铜,这些敷铜通过过孔与底层的地相连。nRF2401的供电电源应通过电容隔开,这样有利于给nRF2401提供稳定的电源。在PCB中,尽量多打一些通孔,使顶层和底层的地能够充分接触。nRF2401模块的PCB如图3.14所示。
图3.14 无线数据传输模块的PCB图
第四章 硬件驱动程序和串行口调试工具
驱动程序是硬件电路的灵魂,没有驱动的硬件电路是没有用的。STC89C58RD+是51类单片机,可以像开发其他51单片机驱动一样开发它的驱动程序。单片机软件开发平台选择比较流行的Keil uVision2,因为现在关于Keil uVision2软件的资料很多,这样上手就会很快。
串行口调试工具是用来将PC机上的数据通过串行口发送到单片机,和PC机接收从单片机发送过来的数据。选用Visual C++ 6.0来开发串行口调试工具,Visual C++ 6.0是微软公司推出的一款优秀开发工具,代码紧凑,运行速度快,而且比较适合低层开发。
4.1 硬件驱动程序
整个数据传输系统有两部分组成:与PC机相连的开发板为主机端,它不能移动,接收从机端发送过来的数据,并向从机端发送指令;可以移动的为从机端,它由开发板和无线数据传输模块组成。由于两端的地位和功能不同,因此对应的驱动程序也不同。
使用Keil uVision2开发硬件驱动程序,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。51 的编程语言常用的有二种,一种是汇编语言,一种是 C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而 C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且 C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用 C 语言的开发周期通常要小于汇编语言很多。综合以上C语言的优点,在开发时选择了C51语言.
4.1.1 主机端硬件驱动程序
主机端的硬件驱动程序主要有两种功能:实现开发板通过串行口和PC机通信;实现开发板通过某些I/O口和无线数据传输模块进行通信。
STC89C58RD+单片机的串行口是一个全双工通信接口,即能同时进行发送和接收,它可以作UART用,也可以作为同步移位寄存器用,其祯格式和波特率可以通过软件编程来设置,在使用上非常方便。
STC89C58RD+单片机串行口的工作方式和波特率由控制寄存器SCON和特殊功能寄存器PCON组成。
串行口控制寄存器SCON:
系统 硬件 方案设计 点菜 电子 单片机 无线 基于 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)