智能电法仪的设备驱动程序的设计与实现  测控技术与仪器毕业论文_第1页
智能电法仪的设备驱动程序的设计与实现  测控技术与仪器毕业论文_第2页
智能电法仪的设备驱动程序的设计与实现  测控技术与仪器毕业论文_第3页
智能电法仪的设备驱动程序的设计与实现  测控技术与仪器毕业论文_第4页
智能电法仪的设备驱动程序的设计与实现  测控技术与仪器毕业论文_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计论文题目智能电法仪的设备驱动程序的设计与实现TITLETHEDESIGNANDIMPLEMENTATIONOFTHEINTELLIGENTELECTRICALAPPARATUSDEVICEDRIVERS姓名陈石明学号08022101指导教师黎正根专业测控技术与仪器二零一二年六月摘要外部设备可以大大的增加仪器的功能,使仪器更加的智能,更加的完善。典型的外部设备,如显示屏、键盘、打印机等,对于仪器是非常重要的。因此,设计设备驱动程序,使主机与外部设备正常的通信也是非常重要的工作。本文主要设计了智能电法仪的设备驱动程序。主要包括显示屏的驱动程序、USB口的驱动程序和极化补偿中D/A模块的驱动程序。运用这些驱动程序,可以使智能电法仪与人之间的通讯更加的方便。本文设计的设备驱动程序,都是以ARM7单片机为主机。显示屏的驱动程序是通过ARM7单片机控制T6963C芯片,使显示屏显示。USB口的设备驱动程序设计了两种方法,分别是以ISP1161芯片为基础的驱动程序和以CH376芯片基础的驱动程序,使电法仪测得的数据能够正确的存盘。D/A模块的驱动程序是以TLC5620C芯片为基础的驱动程序,使D/A模块可以输出正确的模拟电压。设计中利用C/OS操作系统优化设备驱动程序的设计,使设计的程序更加的科学。程序设计中都是以模块化的设计方法,把整个驱动程序模块化,使程序的设计更加的简单。经测试,所设计的智能电法仪的设备驱动满足设计要求,外部设备与主机的通讯正常。关键词智能电法仪;设备驱动;显示屏;USB;D/AABSTRACTEXTERNALDIVICECANGREATLYINCREASETHEFUNCTIONOFTHEAPPARATUSANDBEMOREINTELLIGENTANDMOREPERFECTTHETYPICALEXTERNALDEVICES,SUCHASSCREEN,KEYBOARD,PRINTER,AREVERYIMPORTANTTOTHEDEVICETHEREFORE,THEDESIGNOFTHEDEVICEDRIVER,WHICHMAKESCOMMUNICATIONBETWEENHOSTANDEXTERNALDEVICEMOREACCURATE,ISALSOVERYIMPORTANTWORKTHISPAPERMAINLYDESIGNEDTHEDEVICEDRIVERSOFINTELLIGENTELECTRICAPPARATUSMAINLYINCLUDEDISPLAYDRIVER,THEDRIVEROFUSBPORTANDTHEDRIVEROFD/AMODULEINPOLARIZATIONCOMPENSATIONTHEDRIVERSCANMAKETHECOMMUNICATIONBETWEENINTELLIGENTELECTRICAPPARATUSANDPEOPLEMORECONVENIENTTHEDESIGNOFDEVICEDRIVERSINTHISPAPERAREBASEDONARM7SINGLECHIPDISPLAYDRIVERMAKESTHESCREENSHOWSTHROUGHTHEARM7MCUMICROCONTROLLERUNITCONTROLT6963CCHIPTHEREARETWOMETHODSTODESIGNTHEUSBPORTDEVICEDRIVER,RESPECTIVELYBASEDONISP1161CHIPANDCH376CHIPD/AMODULEDRIVERISBASEDONTLC5620CCHIP,WHICHMAKESTHED/AMODULEOUTPUTTHEPROPERANALOGVOLTAGETHEUSEOFC/OSOPERATINGSYSTEMMAKETHEDEVICEDRIVERMORESCIENTIFICTHEMODULARDESIGNMETHODMAKESTHEPROGRAMMORESIMPLEANDPELLUCIDBYTEST,THEDESIGNOFTHEINTELLIGENTELECTRICAPPARATUSDEVICEDRIVERMEETTHEDESIGNREQUIREMENTSANDTHECOMMUNICATIONBETWEENEXTERNALDEVICEANDHOSTISPERFECTKEYWORDSINTELLIGENTELECTRICALAPPARATUSDEVICEDRIVERDISPLAYSCREENSUSBD/A目录绪论111课题研究目的和意义112电法仪的研究进展及现状113主要研究内容及论文结构214课题来源22设备驱动程序概述321WINDOWS的设备驱动程序概述322LINUX的设备驱动程序概述323C/OS的设备驱动程序概述424LPC2210的IO模块与EMC4241LPC2210概述4242IO模块介绍4243EMC模块介绍53LCD显示屏的驱动程序的设计1131T6963C控制器介绍11311概述11312特性11313封装12314引脚描述12315接口时序13316指令说明1432LCD模块与ARM7的连接1433LCD的驱动程序154基于ISP1161的USB的驱动程序的设计1741ISP1161芯片介绍17411概述17412特性17413封装18414引脚描述1942ISP1161PAKE板与ARM7的连接2243USB驱动程序设计235基于CH376的USB的驱动程序的设计2551CH376芯片介绍25511概述25512特点25513封装26514引脚描述27515命令28516CH376与单片机通讯接口30517并行接口3152CH376评估板与ARM7的连接32521CH376评估板概述32522连接图3453USB的驱动程序356D/A的驱动程序的设计3761TLC5620C芯片介绍37611概述37612特性37613封装37614引脚描述3862D/A的硬件电路3863D/A的驱动程序3964测试数据39结论41致谢42参考文献43附录144附录245附录360附录465附录568绪论11课题研究目的和意义随着后PC时代的到来,各种嵌入式系统发展迅速。对于嵌入式电子产品来说,嵌入式操作系统是它的灵魂。操作系统不但使嵌入式产品获得了更加复杂、更加人性化的功能,还方便了应用程序的开发。C/OS是适用于嵌入式系统的实时操作系统。自从1992年发布以来,在世界各地获得了广泛应用。该系统目前已经被移植到40多种不同结构的CPU上,运行在从8位到64位的各种系统上。该系统自从251版本之后,就通过了美国FAA认证,可以运行在诸如航天器等对安全性要求极为苛刻的系统上。纵观目前的各种嵌入式电子产品,外部设备是不可或缺的组成部分。外部设备必须有配套的驱动程序才能正常工作,由于嵌入式设备的种类繁多特点决定了不同的嵌入式产品在开发时都必须设计自己的设备驱动程序,使得设备驱动程序的开发在整个嵌入式系统开发工作中占有举足轻重的地位。因此,对嵌入式C/OS设备驱动的研究是一个很好的课题,具有重要的社会和商业价值。驱动程序的开发,对智能电法仪的设计与实现也有很重要的意义。12电法仪的研究进展及现状早期的电法仪器是简单的机械式电压表和电流表。50年代,有了由电子管和晶体管组成的电法仪器,数据的是以机械指针的方式读取,手工记录的方式保存。到了60年代,虽然集成电路已经应用到了电法仪器中,但在数据的读取和存储方面没有实质的突破。这无疑增大了数据的误差,同时数据的保存与处理也存在很大的难度。进入70年代,电子技术的快速发展,集成电路得到广泛应用,数据的读取形式变成了数字式,这样就比指针式的数据读取方式有了更高分辨率。80年代,电法仪器技术进入快速发展时期,这一时期,仪器更加智能化和多功能化,这主要得益于微控制器、模数(A/D)和数模(D/A)转换技术的应用。90年代以后,电子技术和计算机技术的快速发展,使得数据处理软件与基于嵌入式系统的新电法仪器的直接数据交换成为可能,这必然大大提高电法勘探的工作效率和野外数据的可靠性。如今国内生产的电法仪器,比较多的有高密度电法仪、时间域与频率域激电仪和瞬变电磁仪。国外主要的电法仪器公司也相继推出新一代电法仪器,主要有高密度电法仪、电磁法仪、多功能电法仪和通用发送机。目前,国内外的电法仪器正朝着多通道、多分量、高精度、大功率、多参数、数据处理、图形绘制自动化、资料解释智能化的方向发展。13主要研究内容及论文结构主要研究内容是在ARM7内核芯片LPC2210的基础上,利用C/OSII嵌入式实时操作系统,设计与实现智能电法仪的设备驱动程序。全文共分七章,具体内容组织如下第1章绪论。概述了课题的研究目的和意义,电法仪的研究现状,及本文主要研究的工作。第2章设备驱动程序的概述。介绍了WINDOWS,LINUX,C/OS的设备驱动程序。及设计驱动程序所需要的LPC2210的IO模块与EMC模块。第3章LCD显示屏的驱动程序的设计。介绍了T6963C控制器及LCM模块与ARM7的连接,实现了LCD的驱动程序。第4章基于ISP1161的USB的驱动程序的设计。介绍了ISP1161芯片及ISP1161模块与ARM7的连接,实现了基于ISP1161的USB的驱动程序。第5章基于CH376的USB的驱动程序的设计。介绍了CH376的芯片及CH376开发板与ARM7的连接,实现了基于CH376的USB的驱动程序。第6章D/A的驱动程序的设计。介绍了TLC5620芯片及D/A的硬件电路,实现了D/A的驱动程序,并且用测试数据证明了驱动程序的正确性。第7章结论。总结了设计与实现过程中遇到的难题及克服的办法。并且提出了进一步改进的办法。14课题来源本课题依附于东华理工大学核技术学院测控教研室“智能电法仪的研发”项目。2设备驱动程序概述21WINDOWS的设备驱动程序概述在WINDOWS98操作系统上驱动程序叫作虚拟设备驱动,简称VXD,执行程序的后缀名是VXD。在WINDOWS2000及以后的WINDOWSXP等系统下,驱动程序采用了WDMWINDOWSDRIVERMODEL模式,该模式是由WINDOWSNT的驱动模式改进而来。WINDOWS下的程序有用户态和内核态两种运行模式,驱动程序属于操作系统的一部分,运行在内核态,可以访问系统的全部资源。用户态的程序只能访问属于自己的内存空间,不能直接访问IO端口,也不能直接处理硬件中断,应用程序都是运行在用户态。其优点很明显,减少了应用程序对底层程序和硬件设备的干预,也就降低了破坏系统的风险。通俗地讲,大多数情况下,即使应用程序出错,操作系统也可以继续正常运行。和UNIX一样,WINDOWS系统中的设备在操作系统中被抽象成一个文件。设备的相关操作被操作系统和驱动程序封装起来,以统一形式的接口提供给应用程序。在驱动程序中,DRIVERENTRY作为整个函数的入口,相当于应用程序的MAIN函数或者WINMAIN。编译完成之后,需要分发两个文件SYS和INF。其中SYS是动态链接库,即执行文件;INF是安装指导文件。对于应用程序来说,操作系统的文件系统提供了统一的程序接口,主要包括CREATEFILE、READ、WRITE、DEVICEIOCONTROL、CLOSEHANDLE,与操作系统和驱动程序通信。22LINUX的设备驱动程序概述在LINUX操作系统上,设备驱动程序是应用程序和实际设备之间的一个软件层,它向下负责和硬件设备的交互,向上通过一个通用的接口挂接到文件系统上,从而使用户或应用程序可以按操纵普通文件的方式进行访问控制硬件设备。作为LINUX内核的重要组成部分,设备驱动程序主要完成以下的功能1)对设备初始化和释放。2)把数据从内核传送到硬件和从硬件读取数据。3)读取应用程序传送给设备文件的数据和回送应用程序请求的数据。4)检测错误和处理中断。LINUX内核有三种类型的设备驱动程序字符设备驱动程序、块设备驱动程序和网络设备驱动程序。字符设备是以字节为单位逐个进行I/O操作的设备,在对字符设备发出读写请求时,实际的硬件I/O紧接着就发生了,一般来说字符设备中的缓存是可有可无的,而且也不支持随机访问。块设备主要是针对磁盘等慢速设备设计的,其目的是避免耗费过多的CPU时间来等待操作的完成。它利用一块系统内存作为缓冲区,当用户进程对设备进行读写请求时,驱动程序先查看缓冲区中的内容,如果缓冲区中的数据能满足用户的要求就返回相应的数据,否则就调用相应的请求函数来进行实际的I/O操作。网络设备是一个能够和其他主机交换数据的设备,它通常是个物理设备,但也可能是个软件设备,如回环设备(LOOPBACK)。网络驱动程序负责驱动设备发送和接收数据包。除了设备类型以外,内核还使用了一个主设备号和一个次设备号来唯一标识设备,主设备号标识了设备对应的驱动程序,而次设备号仅由驱动程序解释,一般用于识别在若干可能的硬件设备中,I/O请求所涉及到的那个设备。23C/OS的设备驱动程序概述C/OS是一个小型化的实时操作系统内核,适合小型控制系统。它具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。它允许应用程序直接访问硬件资源而不必使用专用的API函数集。因此,在C/OS2系统平台上可以开发出更加灵活、更加高效的程序。在C/OS一类的微内核操作系统中,设备驱动一般都是由应用程序在内核外部实现的。不过,由于不分系统空间和用户空间,这些设备驱动程序仍在系统态执行。从系统结构的角度看,设备驱动的实现可以有两种方式。一种是把特定设备的驱动做成一个服务进程,需要访问该设备的进程,通过进程间通信机制向服务进程发出请求,由服务进程独家代理完成对设备的操作。另一种是把对设备的操作做成一组函数调用,以库函数的形式向各个进程提供设备驱动。从设备驱动的实现方式看也有两种。一种是轮询,另一种是中断。本设计是基于C/OS系统在ARM7平台上设计设备的驱动程序。24LPC2210的IO模块与EMC241LPC2210概述LPC2210是基于一个支持实时仿真和嵌入式跟踪的16/32位ARM7TDMISTMCPU的微控制器。对代码规模有严格控制的应用可使用16位THUMB模式将代码规模降低超过30,而性能的损失却很小。由于LPC2210的144脚封装、极低的功耗、多个32位定时器、8路10位ADC、PWM输出以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和POS机。通过配置总线,LPC2210最多可提供76个GPIO。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软MODERN以及其它各种类型的应用。242IO模块介绍1)管脚描述表21GPIO管脚描述管脚名称类型描述P00P031P116P131输入/输出通用I/O口实际可用的GPIO数量取决于可选功能的使用。P30P331P20P231输入/输出外部总线数据/地址线,与GPIO、数字和模拟功能共用。用于GPIO/数字和模拟功能的管脚数目取决于总线结构的选择。2)寄存器描述LPC2210有2个32位的通用I/O口。PORT0使用了30个管脚,PORT1有多达16个管脚可用作GPIO功能。PORT0和PORT1由2组(4)个寄存器控制。除PORT0和PORT1外,LPC2210还包含另外两个端口PORT2和PORT3。通过配置,这两个端口可用作外部存储器数据的地址和数据总线或GPIO(与少数数字和模拟功能共用)。AGPIO管脚值寄存器(IO0PIN0XE0028000,IO1PIN0XE0028010,IO2PIN0XE0028020,IO3PIN0XE0028030)该寄存器提供GPIO管脚的值。它反映了外部环境对管脚的影响。表22GPIO管脚值寄存器IOPIN描述复位值310GPIO管脚值。IO0PIN的位0对应于P00位31对应于P031未定义BGPIO输出置位寄存器(IO0SET0XE0028004IO1SET0XE0028014,IO2SET0XE0028024IO3SET0XE0028034)当管脚配置为GPIO输出模式时,可使用该寄存器从管脚输出高电平。写入1使对应管脚输出高电平。写入0无效。如果一个管脚被配置为输入或第二功能,写IOSET无效。读IOSET寄存器返回GPIO输出寄存器中的值。该值由前一次对IOSET和IOCLR(或前面提到的IOPIN)的写操作决定,该值不反映任何外部环境对管脚的影响。表23GPIO输出置位寄存器IOPIN描述复位值310GPIO管脚值。IO0PIN的位0对应于P00位31对应于P031未定义CGPIO输出清零寄存器(IO0CLR0XE002800CIO1CLR0XE002801CIO2CLR0XE002802CIO3CLR0XE002803C)当管脚配置为GPIO输出模式时,可使用该寄存器从管脚输出低电平。写入1使对应管脚输出低电平。并清零IOSET寄存器中相应的位。写入0无效。如果一个管脚被配置为输入或第二功能,写IOCLR无效。表24GPIO输出清零寄存器IOCLR描述复位值310输出清零。IO0CLR的位0对应于P00位31对应于P0310DGPIO方向寄存器(IO0DIR0XE0028008IO1DIR0XE0028018IO2DIR0XE0028028IO3DIR0XE0028038)当管脚配置为GPIO模式时,可使用该寄存器控制管脚的方向。任意管脚的方向位的设置必须与管脚功能一致。表25GPIO方向寄存器IODIR描述复位值310方向控制位(0输入,1输出)IO0DIR的位0控制P00位31控制P031。0243EMC模块介绍外部静态存储器控制器是一个AMBAAHB从机模块。它为AMBAAHB系统总线和外部(片外)存储器器件提供了一个接口。该模块可同时支持多达4个单独配置的存储器组。每个存储器组都支持SRAM、ROM、FLASHEPROM、BURSTROM存储器或一些外部I/O器件。每个存储器组的总线宽度为8、16或32位。LPC2210144脚封装的管脚地址输出线是A230,其中地址位A2524用于4个存储器组的译码。4个存储器组的有效区域位于外部存储器的起始部分,但在BOOT10的状态控制下,BANK0可用于初始引导。表26外部存储器组的地址范围BANK地址范围配置寄存器0800000080FFFFFFBCFG018100000081FFFFFFBCFG128200000082FFFFFFBCFG238300000083FFFFFFBCFG31管脚描述表27外部存储器控制器管脚描述管脚名称类型管脚描述D310输入输出外部储存器数据线A230输出外部储存器地址线OE输出输出使能信号,低电平有效BLS30输出字节定位选择信号,低电平有效WE输出写使能信号,低电平有效CS30输出芯片选择信号,低电平有效2寄存器描述外部存储器控制器包含4个寄存器,如表28所示。表28外部存储器控制器寄存器名称描述访问复位值地址BCFG0存储器组0的配置寄存器读写0X0000FBEF0XFFE00000BCFG1存储器组1的配置寄存器读写0X2000FBEF0XFFE00004BCFG2存储器组2的配置寄存器读写0X1000FBEF0XFFE00008BCFG3存储器组3的配置寄存器读写0X0000FBEF0XFFE0000C每个寄存器必须为对应的存储器组选择以下选项A一个存储器组内部的读写访问之间以及访问一个存储器组和访问另一个存储器组之间需要间隔的空闲时钟周期个数(117)个时钟以避免器件间总线的相互争用B读访问长度,但对BURSTROM的连续读访问除外(335个时钟)C写访问长度(319个时钟)D存储器组是否写保护E存储器组的总线宽度8、16或32位3存储器组配置寄存器03(BCFG030XFFE000000C)表29存储器组配置寄存器BCFG03名称功能复位值30IDCY该域控制着一个存储器组内部的读写访问之间以及访问一个存储器组和访问另一个存储器组之间EMC需要给定的空闲CCLK周期最小数目以避免器件间总线的相互争用空闲CCLK周期数为该域的值加1。11114保留保留用户软件不应向其写入1从保留位读出的值未被定义NA95WST1该域控制着读访问的长度对BURSTROM的连续读访问除外读访问的长度以CCLK周期来计量其值是该域的值加3。1111110RBLE当存储器组由字节宽度或未按字节区分的器件组成时该位为0这时在读访问时EMC将BLS30输出拉高当存储器组由含有字节选择输入的16位和32位宽器件组成时该位为1这时在读访问时EMC将BLS30输出拉低。01511WST2对于SRAM区,该域控制着写访问的长度。对于BURSTROM区,该域控制着连续访问的长度。111111623保留保留,用户软件不应向其写入1。从保留位读出的值未被定义。NA24BUSERR如果EMC检测到一个大于32位数据访问的AMBA请求时该位被置位。这也是惟一一种可知的该位被置位的情况。ARM7TDMIS不会出现这样的请求。025WPERR如果试图对一个WP位为1的存储器组进行软件写入操作时该位置位。通过写入1将该位清零。026WP该位为1时,表明存储器组写保护。027BM该位为1时,表明这是一个BURSTROM区。02928MW该域控制着存储器组数据总线的宽度008位,0116位,1032位,11保留。103130AT该域通常写入00004外部存储器接口外部存储器接口取决于存储器组的宽度(32、16或8位,由BCFG寄存器的MW位选择)而且,存储器芯片的选择也需要对BCFG寄存器的RBLE位进行适当的设置。RBLE0时,选择8位的外部存储器;RBLE1时,存储器芯片必须能够接收16或32位的数据。如果存储器组配置成32位宽,地址线A0和A1就可用作非地址线。如果存储器组配置成16位宽,则不需要A0;8位宽的存储器组只需要使用A0。通过管脚功能选择寄存器2(PINSEL2寄存器)的位23和24来对A1和/或A0线来进行配置,从而实现A0/A1的地址或非地址功能。下面各图中的符号“A_B”表示数据总线的最高位地址线,符号“A_M”表示使用外部存储器接口的存储器芯片的最高位地址线。图2132位存储器组的外部存储器接口图2216位存储器组的外部存储器接口图238位存储器组的外部存储器接口5典型总线时序下图所示为典型的外部存储器读/写访问时序。XCLK是从P323输入的时钟信号。当P323脚的信号不被外部存储器用作时钟信号时,在典型的外部存储器读/写访问中,它还可用作时间基准(XCLK和PCLK必须设定成相同的频率)。图24和图25所示是典型的外部存储器读/写访问时序。因而,在某些特殊情况下会有所变化。同样,在对SRAM的几次连续写访问时序中,最后一次写访问的时序与图25给出的相同。但另一方面,前导写周期的数据有效时间会长1个周期。单个的写访问时序也将与图25的其中一个相同。图24外部存储器读访问(WST10和WST11两种情况)图25外部存储器写访问(WST20和WST21两种情况)6外部存储器选择根据EMC操作的描述和常用的外部存储器(合适的读和写访问时间TAA和TWRITE),可构造出下表并用于外部存储器的选择。TCYC表示单个XCLK周期(见图24和25)。FMAX表示选用了外部存储器的系统能得到的最大PCLK频率。表10外部存储器和系统的性能指标访问时序最大频率WST设置(WST0;取整数)所需的存储器访问时间标准读NSRAMTWSTF20MAX120CYRAMTNSNSWSTTCYRAM201标准写NSTWSTFRAM521MAXCYWRITETNS5NSWSTTCYWRITE5213LCD显示屏的驱动程序的设计31T6963C控制器介绍311概述内置T6963C控制器型图形液晶模块的驱动和控制系统是由T6963控制器及其周边电路的、行驱动器组、列驱动器组及偏压电路组成。从模块的外接口考察模块的电路特性,实际上就是T6963C的电路特性。T6963C最大的特点是具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比、驱动传输的字节数/行及字符的字体都有引脚电平设置数。初始化在上电时已基本完成。其原理图如图31所示。图31T6963C的原理图312特性1功能特性AINTEL8080系列微处理器接口B68和88字体可选C图形方式、文本方式以及图形与文本混合显示,文本方式下的特征显示图形拷贝功能D内置字符发生器CGROM,含128个字符。模块上带32K显示缓冲区。2电气特性A逻辑工作电压VCC4555VB电源地GND0VC输入电压0VCCD输入高电平VIHVCC22VVCCE输入低电平VIL008VF输出高电平VOHVCC03VCCG输出低电平VOL003VH工作频率0455MHZ313封装T6963C的芯片有67个引脚,其封装如图32所示。图32T6963C的封装图314引脚描述T6963C的引脚功能描述如表31所述表31T3963C的引脚描述名称型态电平功能描述FG铁框地GND电源地VCC输入电源输入(5V)V0输入LCD驱动电压输入端(对比度调节)/WR输入H/L写信号/RD输入H/L读信号/CE输入H/L片选信号C/D输入H/L寄存器选择端H命令寄存器;L数据寄存器/RST输入H/L复位信号DB0DB7输入/输出H/L数据总线FS输入H/L字体选择端H68字体;L88字体VOUT输入负压输出端BLA输入背光正极BLK背光负极315接口时序1)工作时序图T6963C的工作时序如图33所示图33T6963C工作时序2)时序参数表(VDD50V10,VSS0VTA1070)T6963C的工作时序参数如表32所示表32T6963C的时序参数表项目符号最小值最大值单位C/D建立时间TCDS100NSC/D保持时间TCDH10NSCE,/RD,/WR脉冲宽度TCE,TRD,TWR80NS数据建立时间TDS80NS数据保持时间TDH40NS取数时间TACC150NS输出保持时间TOH1050NS316指令说明T6963C的指令说明如表33所示表33T6963C指令列表控制状态指令代码参数指令名称C/D/RD/WRD7D6D5D4D3D2D1D0读状态字101S7S6S5S4S3S2S1S0无地址指针设置11000100N2N1N02显示区域设置110010000N1N02显示方式设置1101000CGN2N1N0无显示状态设置1101001N3N2N1N0无光标形状设置11011000N2N1N0无数据自动读写设置110101100N1N2无数据一次读写设置11011000N2N1N01屏读一字节设置11011100000无屏拷贝一行设置11011101000无位操作1101111N3N2N1N0无数据写操作010数据无数据读操作001数据无32LCD模块与ARM7的连接MG240128液晶模块内带的液晶控制器为T6963C,此芯片的VIN最小值为VDD22V,当VDD为5V时,VIN最小值为28V,所以LPC2210连接不需要加电平转换芯片。由于模块工作电源是5V而LPC2210的I/O电压为33V,所以在总线上串联470的保护电阻。图形液晶模块的C/D与A1连接,使用A1控制模块处理数据/命令。LPC2210采用8位总线方式连接MG240128图形液晶模块,该模块没有地址总线,显示地址和显示数据均通过DB0DB7接口实现。如图34所示,可调电阻W3用来调整液晶显示对比度。MG240128液晶模块内装有LED背光,使用5V电源供电,显示字符或图形时LED背光可以点亮或熄灭。图34LCD模块的接口电路33LCD的驱动程序对于LCD的驱动程序,其主要任务是完成LCD模块与LPC2210微控制器的通信。使LPC2210微控制器可以控制LCD屏的显示。编写LCD黑白屏的驱动程序,首先,需要初始化LPC2210微控制器的EMC模块,需要在STARTUPS文件中,用运汇编语言,设置好EMC模块相应的寄存器,从而使总线速度符合通讯要求。然后,编写LCD驱动的子函数。LCD应具有以下函数判断读写指令和读写数据是否允许函数LCD_TESTSTABIT01;数据自动写状态是否允许函数LCD_TESTSTABIT3;写无参数命令子程序LCD_WRITETCOMMAND1;写单参数命令子程序LCD_WRITETCOMMAND2;写双参数命令子程序LCD_WRITETCOMMAND3;写1字节数据子程序LCD_WRITETDATA1;LCM初始化函数LCD_INITIALIZE;LCD填充(以图形方式进行填充,起始地址为0X0000)函数LCD_FILLALL;在指定位置上画点(刷新某一点)函数LCD_UPDATEPOINT。完成了以上基本函数的编写,就可以进行LCD的初始化,初始化的主要任务是完成工作模式的初始化和清屏。初始化流程图如图35所示。件件件件件件件件件件件件件件件件件件件件件件件件件件件图35LCD初始化流程图LCD的驱动程序是以文件的形式,存于智能电法仪的软件文件中,具体的驱动程序见附录1。完成了LCD的初始化后,可以在智能电法仪上使用了,具体的运用见本组成员郑以磊的毕业论文中。4基于ISP1161的USB的驱动程序的设计41ISP1161芯片介绍411概述ISP1161A1是一个单片通用串行总线(USB)主机控制器(HC)和设备控制器(DC)。ISP1161A1的主机控制器部分符合通用串行总线20规范,支持全速(12MBIT/S)和低速(15MBIT/S)的数据传输。ISP1161A1的设备控制器部分也符合通用串行总线20规范,支持全速(12MBIT/S)的数据传输。这两个USB控制器HC和DC,共用一个微处理器总线接口。它们有相同的数据总线,但I/O地址不同。它们也有各自的中断请求输出管脚和独立的DMA通道,DMA通道含有各自的DMA请求输出管脚和DMA应答输入管脚。这就使微处理器在应用中可以同时对USBHC和USBDC进行控制。ISP1161A1为USBHC提供两个下行端口,为USBDC提供一个上行端口。每一个下行端口都有一个过流(OC)检测输入管脚和电源转换控制输出管脚。上行端口也有一个VBUS检测输入管脚。另外,ISP1161A1还分别为USBHC和USBDC提供单独的唤醒输入管脚和挂起状态输出管脚,这就使电源管理起来很灵活。HC的下行端口可与任意一个符合USB规范并含有USB上行端口的USB器件和USB集线器相连。类似地,DC的上行端口可与任意一个符合USB规范并含有USB下行端口的USB主机和USB集线器相连。ISP1161A1十分适用于仅需要一个USB主机、一个USB器件或一个可配置USB主机和USB器件的结合的嵌入式系统和便携式设备。ISP1161A1在系统中的使用非常灵活,应用时甚至可将其内置到系统中。例如,内置有ISP1161A1的系统不但可以与含有USB下行端口的PC机或USB集线器相连,而且还可以与含有USB上行端口的设备相连如USB打印机、USB相机、USB键盘或USB鼠标等。因此,ISP1161A1使能嵌入式系统之间的对等连接。其中最引人注意的例子是将一个ISP1161A1的HC和一个ISP1161A1的DC相连接。412特性1符合通用串行总线20规范2ISP1161A1的主机控制器部分支持全速(12MBIT/S)和低速(15MBIT/S)的数据传输3ISP1161A1的设备控制器部分支持全速(12MBIT/S)的数据传输。4单片内综合了HC和DC功能5片内DC符合大多数USB器件的分类规格6外部微处理器可通过它们各自的I/O口地址对HC和DC进行访问7可选的一个或两个HC下行端口和一个DC上行端口8高速并行接口支持大多数通用微处理器及精简指令系统RISC处理器如AHITACHISUPERHTMSH3和SH4BMIPSBASEDRISCCARM7TM,ARM9TM,STRONGARM9微处理器和HC之间的数据传输率最高可达15MBYTE/S,微处理器和DC之间的数据传输率为111MBYTE/S10支持单周期和DMA突发模式操作11DC含有多达14个可编程的USB端点,2个固定的控制IN/OUT端点12HC和DC内置有单独的FIFO缓冲区RAM,其中HC含4K字节,DC含2462个字节13双缓冲配置的端点增加了数据吞吐量,轻松实现了DC传输和HC同步(ISO)处理的实时数据传输14集成了PLL的6MHZ晶体振荡器,有着良好的EMI特性15在挂起状态可控制LAZYCLOCK(100KHZ50)的输出16可编程频率(3到48MHZ)的时钟输出17由软件控制实现DC上行端口与USB总线的连接(SOFTCONNECT)18良好的USB连接指示器,DC通信时闪烁(GOODLINK)19为HC下行端口内置了可进行软件选择的内部15K下拉电阻20含有专门的挂起检测输出管脚和唤醒控制输入管脚,应用更方便21全局硬件复位输入管脚以及HC和DC单独的内部软件复位电路225V或33V的工作电源2340到85的工作温度24两种LQFP64封装(SOT3142和SOT4141)413封装ISP1161的芯片有64个引脚,其封装如图41所示图41ISP1161的封装图414引脚描述ISP1161的引脚描述如表41所示表41ISP1161的引脚描述符号管脚类型描述DGND1数字地D22I/O双向数据的位2;转换速率控制;TTL电平输入;三态输出D33I/O双向数据的位3;转换速率控制;TTL电平输入;三态输出D44I/O双向数据的位4;转换速率控制;TTL电平输入;三态输出D55I/O双向数据的位5;转换速率控制;TTL电平输入;三态输出D66I/O双向数据的位6;转换速率控制;TTL电平输入;三态输出D77I/O双向数据的位7;转换速率控制;TTL电平输入;三态输出DGND8数字地D89I/O双向数据的位8;转换速率控制;TTL电平输入;三态输出D910I/O双向数据的位9;转换速率控制;TTL电平输入;三态输出D1011I/O双向数据的位10;转换速率控制;TTL电平输入;三态输出D1112I/O双向数据的位11;转换速率控制;TTL电平输入;三态输出D1213I/O双向数据的位12;转换速率控制;TTL电平输入;三态输出D1314I/O双向数据的位13;转换速率控制;TTL电平输入;三态输出DGND15数字地D1416I/O双向数据的位14;转换速率控制;TTL电平输入;三态输出D1517I/O双向数据的位15;转换速率控制;TTL电平输入;三态输出DGND18数字地VHOLD119电压保持管脚1;内部连接到VREG33和VHOLD2管脚。当VCC连接到5V时,该管脚将输出33V,因此需避免与5V电压连接。当VCC连接到33V时,该管脚既可与33V相连,也可悬空。在所有情况下,需将该管脚去耦接地。NC20不连接CS21I片选输入RD22I读选通输入W23I写选通输入VHOLD224电压保持管脚2;内部连接到VREG33和VHOLD1管脚。当VCC连接到5V时,该管脚将输出33V,因此需避免与5V电压连接。当VCC连接到3V时,该管脚既可与33V相连,也可悬空。在所有情况下,需将该管脚去耦接地。DREQ125OHCDMA请求输出(极性可编程);当DMA控制器上获得信号时,ISP1161A1启动DMA传输;DREQ226ODCDMA请求输出(极性可编程);当DMA控制器上获得信号时,ISP1161A1启动DMA传输;1DACK27IHCDMA应答输入。当不使用时,该管脚必须外接一个10K电阻至VCC228IDCDMA应答输入。当不使用时,该管脚必须外接一个10K电阻至VCCINT129OHC中断输出;电平、触发沿和极性可编程;INT230ODC中断输出;电平、触发沿和极性可编程;TEST31O测试输出;仅用于测试;在正常操作的过程中该管脚不连接REST32I复位输入(施密特触发);一个低电平产生一次异步复位内部上拉电阻NDP_SEL33I指示HC的当前下行端口号0选择1号下行端口1选择2号下行端口仅改变HCRHDESCRIPTORA寄存器的NDP阶段值;2个端口将一直使能;EOT34IDMA主机设备通知ISP1161A1DMA传输结束;有效电平可编程;DGND35数字地D_SUSPEND36ODC的挂起状态指示器输出;高电平有效D_WAKEUP37IDC的唤醒输入;从挂起状态产生一个远程唤醒信号(高电平有效);当不使用时,该管脚必须通过一个外部10K的电阻连接到DGND(内部下拉电阻)GL38OGOODLINKLED指示器输出(开漏,8MA);LED默认为ON,在USB通信时闪烁关闭;用一个470(VCC50V)或330(VCC33V)的串联电阻连接一个LEDD_VBUS39IDC的USB上行端口VBUS检测输入;当不使用时,该管脚必须通过一个1M的电阻连接到DGNDH_WAKEUP40IC的唤醒输入;从挂起状态产生一个远程唤醒信号(高电平有效);当不使用时,该管脚必须通过一个外部10K的电阻连接到DGND(内部下拉电阻)CLKOUT41O可编程的时钟输出(3到48MHZ);默认为12MHZH_SUSPEND42OHC的挂起状态指示器输出;高电平有效XTAL143I晶振输入;直接与一个6MHZ的晶振相连;当XTAL1被连接到一个外部时钟源时,管脚XTAL2必须悬空XTAL244O晶振输出;直接与一个6MHZ的晶振相连;当管脚XTAL1被连接到一个外部时钟源时,XTAL2必须悬空DGND45数字地1_PSWH46O下行端口1的电源转换控制输出;开漏输出247O下行端口2的电源转换控制输出;开漏输出D_DM48AI/ODC上行端口的USBD数据线;当不使用时,该管脚必须悬空D_DP49AI/ODC上行端口的USBD数据线;当不使用时,该管脚必须悬空H_DM150AI/OHC下行端口1的USBD数据线H_DP151AI/OHC下行端口1的USBD数据线H_DM252AI/OHC下行端口2的USBD数据线;当不使用时,该管脚必须悬空H_DP253AI/OHC下行端口2的USBD数据线;当不使用时,该管脚必须悬空1_OCH54IC下行端口1的过流检测输入255IC下行端口2的过流检测输入VCC56电源电压输入(30到36V或475到525V)。该管脚与内部33V调整器的输入端相连。当它连接到5V时,内部调整器将输出33V到管脚VREG33,VHOLD1和VHOLD2。当它与33V相连时,不再连接内部调整器AGND57模拟地VREG3358内部33V调整器输出;当管脚VCC与5V相连时,该管脚输出33V。当管脚VCC与33V相连时,该管脚连接到33VA059I地址输入;用于选择命令(A01)或数据(A00)A160I地址输入;选择将AUTOMUX切换到DC(A11)或AUTOMUX切换到HC(A10)NC61不连接DGND62数字地D063I/O双向数据的位0;转换速率控制;TTL电平输入;三态输出D164I/O双向数据的位1;转换速率控制;TTL电平输入;三态输出42ISP1161PAKE板与ARM7的连接本设计通过ISP1161PACK板实现USB接口,可以支持USB11HOST。ISP1161PACK板使用的芯片是ISP1161A1。ISP1161PACK电路原理图如图42所示。图42中,J1,J2为LPC2210微处理器的数据总线、地址总线、中断和GPIO引脚。ISP1161A1与LPC2210微处理器引脚连接描述如表42所示。ISP1161A1使用LPC2210外部存储控制器BANK2的地址空间,BANK2的地址空间范围为0X820000000X82FFFFFF。由于ISP1161A1的2根地址线A0和A1分别与LPC2200微处理器的A1和A2相连。ISP1161A1的操作地址如下HC命令地址0X82000002;HC数据地址0X82000000DC命令地址0X82000006;DC数据地址0X82000004。表42ISP1161与LPC2210连接描述ISP1161A1引脚功能描述LPC2210引脚D0D1516位数据总线D0D15A0A1ISP1161A1只使用两个地址线A1A2INT1HC中断P016INT2DC中断P015CSISP1161A1片选NCS2WR写使能NWED读使能NOEEST控制ISP1161A1硬件复位P010H_WAKEUP控制ISP1161A1HC唤醒P012H_SUSPEND获取ISP1161A1HC挂起状态不连接D_WAKEUP控制ISP1161A1DC唤醒P011D_SUSPEND获取ISP1161A1DC挂起状态P01343USB驱动程序设计智能电法仪中的USB口,主要功能是把测得的数据存于U盘中。所以,ISP1161的USB口是主机控制器的模式工作的。基于ISP1161开发的USB驱动程序,其主要包括几大功能文件文件系统文件,硬件通讯文件。在硬件通讯文件,主要有硬件的初始化函数VOIDSYS_HC_INIVOID;写命令函数VOIDOUTCOMMANDUNSIGNEDSHORTDATA;写数据函数VOIDOUTDATAUNSIGNEDSHORTDATA;读数据函数UNSIGNEDSHORTINDATAVOID;ISP1161硬件复位函数VOIDSYS_HC_RESETVOID;延时函数VOIDSYS_WAITINUSUNSIGNEDINTTIME等等。在文件系统文件中,又有几个功能模块文件系统定义模块、扇区操作模块、簇操作模块、磁盘操作模块、目录操作模块和文件操作模块。通过编写以上两大类文件,基于ISP1161芯片的USB驱动程序就已经基本完成。具体驱动程序见附录2。对于USB的驱动程序在智能电法仪的运用在U盘存数据。其流程图如43所示。具体程序见本组成员郑以磊的毕业论文中。件件U件件件件件件件件件件件件件件件件件/件件件件件件件件件件件件件件件件件件件件图43U盘存数据程序流程图5基于CH376的USB的驱动程序的设计51CH376芯片介绍511概述CH376是文件管理控制芯片,用于单片机系统读写U盘或者SD卡中的文件。CH376支持USB设备方式和USB主机方式,并且内置了USB通讯协议的基本固件,内置了处理MASSSTORAGE海量存储设备的专用通讯协议的固件,内置了SD卡的通讯接口固件,内置了FAT16和FAT32以及FAT12文件系统的管理固件,支持常用的USB存储设备(包括U盘/USB硬盘/USB闪存盘/USB读卡器)和SD卡(包括标准容量SD卡和高容量HCSD卡以及协议兼容的MMC卡和TF卡)。CH376支持三种通讯接口8位并口、SPI接口或者异步串口,单片机/DSP/MCU/MPU等控制器可以通过上述任何一种通讯接口控制CH376芯片,存取U盘或者SD卡中的文件或者与计算机通讯。CH376的USB设备方式与CH372芯片完全兼容,CH376的USB主机方式与CH375芯片基本兼容。CH376的应用框图如图51。图51CH376的应用框图512特点1)支持15MBPS低速和12MBPS全

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论