首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

最受工程师喜爱的ARM设计方案精华集锦(4)

最受工程师喜爱的ARM设计方案精华集锦(4)

ARM中基于DMA的高效UART通讯及其应用


  1、引言
  由于UART串行口的广泛应用,在传统的8位和16位的处理器以及32位处理器中,一般都带有UART串行口。传统的基于UART的数据通讯中,采用的方式一般有两种,查询式和中断式。查询方式下CPU的负担较重,浪费了处理器的能力,不能够很好的处理其他的事件;中断方式可以在接收到信息或需要发送数据时产生中断,在中断服务程序中完成数据的接收与发送。相对于查询方式,中断方式的CPU利用率要高。在CPU任务简单的系统中,使用中断方式确实是一种好方法。但是在复杂的系统中,比如移动机器人,处理器需要处理串行口通信,多个传感器数据的采集以及处理,实时轨迹的生成,运动轨迹插补以及位置闭环控制等等任务,牵扯到多个中断的优先级分配问题。为了保证数据发送与接收的可靠性,需要把UART的中断优先级设计较高,但是系统可能还有其他的需要更高优先级的中断,必须保证其定时的准确,这样就有可能造成串行通讯的中断不能及时响应,从而造成数据丢失。为此,笔者在采用S3c44b0x设计移动机器人控制器时,为了保证串行通讯的数据及时可靠的接收,同时兼顾其它任务不受影响,采用了基于DMA和中断方式相结合的UART串行通信方式。DMA是 Direct Memory Access的缩写,意思是“存储器直接访问”,它是一种高速的数据传输操作,允许在外部设备和存储器之间直接读/写数据,即不通过CPU,也不需要 CPU干预。整个数据传输操作是在一个称作DMA控制器的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中可以进行其他的工作。这样,在大部分时间里,CPU和输入/输出设备都处于并行的操作状态。其基本原理可以查阅教科书,此处不赘述。这里仅介绍S3c44c0x的DMA控制器。
  2、S3c44b0x中的DMA控制器和UART的特性
  S3c44b0x采用ARM7TDMI核,具有4 通道的DMA控制器,并且对应有4个中断。其中两个DMA通道称做ZDMA(通用DMA),连接在SSB(系统总线)上,另外两个DMA通道称做 BDMA(桥DMA),连接于SSB和SPB(外设总线)之间的接口层。连接于SSB上的ZDMA控制器可以用于从存储器到存储器,从存储器到固定目标的 I/O存储器,和从I/O 设备到存储器之间的数据传输。另外的两个BDMA 控制器主要作用是在外部存储器和内部外设之间传输数据,这里的I内部外设包括SIO,IIS,TIMER和UART等。BDMA与ZDMA可以通过软件启动,也可以通过硬件启动。此设计中我们使用UART0,与其对应的DMA通道为BDMA0。其控制器框图如图1所示。
  S3c44b0x的UART单元提供2个独立的异步串行I/O口,每个口均可以工作于中断模式或者DMA模式,即 UART可以产生内部中断请求或者DMA请求,在CPU的串行I/O口之间传送数据,支持高达115.2KBPS的传输速率,每个UART通道包含2个 16位的分别用于发送和接收的FIFO通道。

  


  详情参阅:ARM中基于DMA的高效UART通讯及其应用

  ARM实现智能来电显示器


  引言
  目前我国电话网交换机传送主叫识别信息CID(Calling Identity Delivery) 有两种方式,较常用的是FSK(频移键控) 方式,另一种是DTMF(双音多频) 方式。基于ARM 的来电号码显示器的实现方法利用CID 芯片HT9032C 来解调FSK 码,同时可实现液晶显示、E2PROM存储和语音播报电话主叫号码等功能,以SPI 串行接口智能显示键盘控制芯片ZLG7289A 为核心设计的键盘电路可实现查阅、删除信息。文章详细介绍了系统的硬件电路设计和软件流程。实践表明,显示器外围器件少,抗干扰能力强,使用方便。  

        1 系统硬件设计

  1.1 系统总体设计
  整个系统由5 部分组成,分别是: (1) FSK 信号解调; (2) 来电号码语音播报; (3) 显示来电; (4) 存储来电信息; (5) 按键控制部分。具体如图1 所示。

  图1 系统组成框图


  1.2 系统各组成部分设计
  (1) FSK 信号解调。
  CID 芯片HT9032C 解调器是台湾HOLTEK 公司生产的双列直插、低功耗的接收物理层主叫识别信息的CMOS 集成电路FSK 解调芯片,它能满足Bell 202 和CCITT V.23 标准,实现1200 波特率FSK数据传输标准,且能检测铃流和载波,电话线经过接口电路接到HT9032C 的TIP,RING,RDET1 和RDET2脚,当有振铃信号来时,HT9032C 的RDET 脚触发下降沿。在第一次和第二次振铃之间HT9032C 把逻辑"1" (1200 ± 12) Hz、逻辑"0" (2200 ± 22) Hz、传输速率为1200 bit /s 的FSK 信号解调成串行异步二进制数据。当检测到有效载波信号,CDET 触发下降沿。在DOUT 脚输出包括信道占用信号、标志信号和主叫识别信号的所有信号; 在DOUTC 脚只输出主叫识别信号。
  HT9032C 与ARM9 的具体硬件连线如图2 所示。

  图2 CID 芯片HT9032C 与ARM9 的硬件连线

继承事业,薪火相传
返回列表