- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ARM11的多路信号采集及发送系统设计及实现
绪论
当今嵌入式系统ARM微处理器发展迅速,这是一种RISC架构下嵌入式系统的核心部件,被广泛地应用到工业控制、无线通讯、消费类电子产品等很多领域。它的指令系统相对简单,它只要求硬件执行很有限且最常用的那部分指令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。
此次课设利用ARM11_S36410及其外围扩展板设计一个嵌入式系统,可通过对ARM植入操作系统或者利用ARM单片机特性实现部分功能。首先研究ARM系统可扩展的电路,根据元器件判断扩展板可实现的功能,其次查询手册,根据外围电路与芯片引脚硬件电路编写程序,最后根据实物测试判断是否实现了功能。
我使用的是ADS1.2编写程序,对电路实现了串口,PWM驱动蜂鸣器,AD转换等功能,经过测试表明,功能基本上都达到要求。
原理分析
2.1 UART接口
串行通信是一种将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的通信方式。UART 是通过产生一个中断或DMA请求,在CPU 和UART 之间传输数据的。每个UART包含两个 64-byte FIFO’s用于发送和接收数据。通过配置相关寄存器,我们可以设置通信的波特率、数据位、停止位和奇偶校验位。
发送数据之前,首先将数据写入FIFO 存储器 ,然后复制到发送移位寄存器。通过发送数据的引脚(txdn)将数据发送,同时,通过数据接收的引脚(rxdn)将接收到的数据从接收移位寄存器复制到FIFO 存储器。如下图所示:
图1 UART发送接收状态图
2.3 按键中断
外部中断源控制器EINT一共被分为9个组,每组里面对应不同的IO管脚,S3C6410芯片共有127个外部中断,每个引脚都可以产生一个外部中断。
ARM的总中断控制器是VIC,包括VIC0和VIC1,联合起来控制了64个中断源,每个VIC控制32个,我们可以找到了与外部中断有关的127个外部中断在VIC里的中断号的对应关系。外部中断组0的27个中断占用了VIC里的4个中断号,外部中断组1-9只占用了1个中断号。我们测试板的按键中断如下:
图2 按键中断对应图
2.3 PWM
PWM即脉冲宽度调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM控制技术主要应用在电力电子技术行业,具体讲,包括风力发电、电机调速、直流供电等领域。
S3C6410微处理器有五个32 位定时器,用来产生内部中断到ARM子系统。定时器0,1,2 和3 各包含一个PWM 功能,可驱动外部的I/O信号。每个定时器有自己的32位向下计数器,被定时器时钟驱动。下数计数器是最初被加载来自定时器计数缓冲寄存器(TCNTBn)。当下数计数器达到零,定时器产生中断请求通知CPU,定时器操作完成。当定时器下数计数器达到零,相应的TCNTBn 能被自动重新进入下数计数器的下一个周期的开始。然而,如果定时器停止,通过清除定时器的使能位TCONn ,TCNTBn 的值将不被加载到计数器中。
PWM使用TCMPBn 寄存器的值,当下数计数器的值匹配于定时器控制器逻辑中的比较寄存器的值时,定时器控制器逻辑改变输出标准。故比较寄存器决定一个PWM 输出的打开时间(或关闭时间)。
图3 PWM定时器结构图
2.4 AD转换
AD转换就是模数转换。顾名思义,就是把模拟信号转换成数字信号。
S3C6410微处理器具有10位CMOS的ADC (模数转换器),它是是一种循环类型的装置,具有8位通道模拟输入。它将模拟的输入信号转换成10位二进制数字编码,最大转换率是500KSPS和2.5MHz的ADC时钟。ADC转换器的操作带有片上采样保持功能。电源中断模式的支持。
S3C6410微处理器的ADC 及触摸屏模块是共用的。当触摸屏装置被使用,触摸屏的 I/F,XM 或 YM 只接地。当触摸屏的装置未被使用,为正常 ADC 转换,XM 或 YM 是连接模拟输入信号的。该模块具体功能框图见下图:
图4 ADC 和触摸屏接口的功能结构框图
3 程序设计
3.1 串口模块
本程序是用串口通道0进行串口通信,分别使用IO口A0、A1作为RXD和TXD。进行串口通信前,先初始化串口,要配置寄存器ULCON0、UCON0、UFCON0、UMCON0来设置串口通信模式,配置寄存器UBRDIV0和UDIVSLOT0来设置波特率。进行串口通信时,直接读取或者写入相应缓冲寄存器即可。本模块代码见附录1,具体流程如下图:
图5 串口模块流程图
3.2 按键中断模块
本程序共设置了8个按键中断,按键IO口分别是N0-N5和L11、L12,分别对应EINT0-5和EINT19-20。初始化外部中
文档评论(0)