《1系统总体设计方案.docx》由会员分享,可在线阅读,更多相关《1系统总体设计方案.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1系统总体设计方案1系统总体设计方案本系统为虚功率源的部分硬件电路和部分软件,包括基于分级构造的人机界面、功能键盘输入、仪器对外接口和对仪器内部主处理器的接口。系统框图如图1所示。图12以太网接口以太网接口部分采用W3100A实现传输层、网络层、数据链路层的功能,采用RTL8201BL实现物理层的功能。2.1W3100AW3100是WIZnet公司专门为以太网互联和嵌入式设备推出的硬件TCP/IP协议栈芯片,其硬件TCP/IP协议栈包含了TCP、UDP、IP、ARP和ICMP协议。在软件源代码当中有W3100A的SocketAPI函数,可使网络通讯的软件设计愈加方便。利用这些函数进行设计时,应
2、首先初始化W3100A的网络设置,即调用相应的API函数设置默认网关、子网掩码、本机物理地址和IP地址,然后建立Socket连接以实现通讯。2.2RTL8201BLRTL8201BL是一个单端口的物理层收发器,它实现了全部的10/100M以太网物理层功能,包括物理层编码子层PCS,物理层介质连接设备PMA,双绞线物理媒介相关子层TP-PMD,10Base-Tx编解码和双绞线媒介访问单元TPMAU2.3以太网接口调试方法使用Ethereal协议分析系统进行以太网接口的调试是行之有效的方法。Ethereal是目前最好的开放源码的网络协议分析器,Ethereal能够捕捉网络数据包,通过分析网络数据包
3、的内容能够知道以太网接口的各层能否工作正常。2.4自动获得IP地址自动获得IP地址基于DHCP协议,由于W3100提供的TCP/IP协议栈并未包含应用层,所以需要研发人员根据DHCP协议自行编写代码来实现自动获得IP地址的功能。为实现自动获得IP地址,局域网内必须存在DHCP服务器。DHCP客户端通过和DHCP服务器的交互通讯以获得IP地址租约。DHCP协议通讯使用端口UDP67服务器端和UDP68客户端进行通讯,为了从DHCP服务器获得一个IP地址,在标准情况下DHCP客户端和DHCP服务器之间会进行四次通讯,所使用的数据包分别为DHCPDISCOVER,DHCPOFFER,DHCPREQU
4、EST,DHCPACK。DHCP工作流程如图2所示。图2DHCP封包格式如图3所示。图3编写程序时DHCP封包必须严格根据图4所示的格式,否则DHCP服务器不能识别出DHCP封包,不会应答DHCPOFFER。有关DHCP协议的详细内容能够参考相关RFC文件:RFC-95、RFC-1084、RFC-1123、RFC-1533、RFC-1534、RFC-1497、RFC-1541。3USB接口3.1CH372USB接口采用CH372芯片,CH372是一个USB总线的通用设备接口芯片,兼容USB2.0协议。在计算机端,CH372的配套软件提供了简洁易用的操作接口,通用Windows驱动程序提供设备级
5、接口,通过DLL提供API应用层接口,与本地端的单片机通讯就好像读写文件;CH372内置了USB通讯中的底层协议,本地端单片机只需负责数据交换,所以单片机程序设计很简洁。4液晶显示模块液晶模块采用C240128型液晶显示模块,此款液晶模块采用8133控制器,此款液晶模块还内置了简体中文字库。5功能键盘设计由于要对键盘功能及数量进行定制,所以采用行列式扫描键盘,键盘控制芯片采用CH451。在使用CH451之前要先对其功能进行初始化,使能键盘扫描,命令代码请参考软件源代码。6软件设计6.1软件总体设计图4系统软件包括初始化,LXI接口,USB接口和人机界面四个主要模块,系统软件模块框图如图4所示。
6、6.2软件构造系统程序流程如图5所示,程序启动后首先对单片机和各器件初始化,然后设置全局变量来存储一些系统和人机界面的状态信息,接着调用显示主界面函数,最后进入主循环,在主循环中各任务以一定顺序串行执行。由于DHCP模块占用资源较多,处理时间较长,不合适放在中断服务函数中,所以放在主循环中根据一定条件执行。同时,为了保证对键盘操作响应的实时性,键盘中断服务函数中包含了对按键所有功能的处理,假如用户希望中断服务函数尽量简短,可以以把按键的功能模块放在主循环中执行。另外,用户能够在主循环中添加本人定义的模块。图56.3初始化对单片机和各器件初始化的顺序具有较严格的要求:应首先禁止看门狗定时器,并初
7、始化系统时钟,在此之后才能够调用延时函数实现较准确的延时;在对外部器件操作之前应该先初始化I/O端口;由于LXI接口初始化和Socket初始化的经过中会触发单片机中断,所以在此之前必须先配置中断系统,否则不能完成LXI接口初始化和Socket初始化。所以,假如用户需要修改初始化部分的代码,建议用户严格根据上述顺序执行。6.3.1MCU初始化单片机的初始化包括禁止看门狗定时器,设置中断,系统时钟初始化,I/O端口初始化,串口初始化。6.3.2协议栈芯片初始化系统上电后要对W3100进行初始化,能够调用SocketAPI函数中的initW3100A()函数来初始化W3100。6.3.3USB接口芯
8、片初始化CH372的初始化包括执行硬件复位,并设置CH372的工作形式为内置固件形式。相关函数能够参考。6.3.4键盘控制芯片初始化CH451初始化包括使能键盘扫描功能,禁止显示驱动功能,禁止看门狗。相关函数能够参考。6.3.5LCD模块初始化在使用LCD模块之前,先要对其进行一次复位操作,并置LCD_REQ线为低电平。相关函数能够参考。6.4LXI接口LXI接口包括初始化,SocketAPI函数,DHCP协议模块。6.4.1初始化在使用LXI接口进行通信之前,先要进行初始化,包括设置IP地址,子网掩码,网关和物理地址,并初始化Socket链接,为实现自动获取IP地址,先设置为UDP。6.4.2SocketAPI函数使用W3100A的SocketAPI函数能够使网络通讯的软件设计愈加方便,与WindowsSocket编程特别类似。6.4.3DHCP协议模块由于W3100提供的TCP/IP协议栈并未包含应用层,所以需要研发人员根据DHCP协议自行编写代码来实现自动获得IP地址的功能。相关函数能够参考。6.5USB接口CH372芯片内置了USB接口的固件程序,CH372的配套软件提供了通用Windows驱动程序和动态链接库文件。6.6人机界面的分级构造设计图6