DSP的异步串口扩展问题解决方案BF561SPORT口_第1页
DSP的异步串口扩展问题解决方案BF561SPORT口_第2页
DSP的异步串口扩展问题解决方案BF561SPORT口_第3页
DSP的异步串口扩展问题解决方案BF561SPORT口_第4页
全文预览已结束

下载本文档

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

文档简介

1、DSP的异步串口扩展问题解决方案BF561 SPORT口摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大 器-电容(OTAC)连续时间型滤波器的结构、设计和具体实现,使用外部可编程 电路对所设计滤波器带宽进行控制,并利用 ADS软件进行电路设计和仿真验 证。仿真结果表明,该滤波器带宽的可调范围为 126 MHz,阻带抑制率大于 35 dB,带内波纹小于 05 dB,采用 18 V 电源, TSMC 018m CMOS工艺 库仿真,功耗小于 21 mW,频响曲线接近理想状态。关键词: Butte 在各种 DSP应用系统中,经常需要与其他的设备或系统进行数据通信,通用异 步收发

2、器 UART(univetsal Asynchronous Receiver Transmitter) 是比较常用 的一种通信模式。当应用系统要求多路 UART,或者基于性能、成本综合考虑选 用了不带 UART的 DSP时,可以考虑利用原有的同步串行口,用软件模拟 UART,在硬件上只需简单的连接便可构建 UART,以实现系统的数据通信要求。 1 ADSP-BF561ADSP BF561 处理器是 ADI公司推出的针对多媒体和通信应用的一款高性能产 品,具有丰富的外设接口,集成了 2 个 Blackfln 处理器内核。它内部集成了 2 个并行外部接口 (PPI) ,为同时进行图像采集、处理和显

3、示提供了一个系统级片 上解决方案,成为各种网络多媒体应用经济、高效的选择。ADSPBF561提供 2个双通道同步串行端口 (SPORTO和 SPORTl),主要有下面几 个特点。 双向操作:每个 SPORT都有 2 套独立的发送和接收引脚。 缓冲的发送和接收端口:每个端口都有 1 个数据寄存器,用以同其他 DSP部 件进行双向数据传输;多个移位寄存器用于数据寄存器内数据的移入和移出。 时钟:每个发送接收端口或者使用外部串行时钟,或者使用自己产生的时 钟频率。 字长:每个 SPORT都支持 332 位长度的串行数据字,以最高有效位在前或 最低有效位在前的格式传送。 帧:无论数据字有无帧同步信号,

4、每个发送和接收端口都能运行;帧同步信 号能够从内部或者外部产生,可以高有效或低有效,要求 2 个脉冲宽度,可以 前帧或后帧同步。2 串行通信原理串行传送是在 1 根传输线上一位一位地传送。异步串行通信是以字符为信息单 位进行传送。每个字符作为一个独立的信息单位 (1 帧数据) ,可以随机出现在 数据流中。一旦传送开始,收发双方以预先约定的传输速率 ( 波特率,表示每 秒传送的二进制位数 ) 在时钟的作用下传送这个字符的每一位。为了确保异步通 信的正确性,需要在字符数据格式中设置起始位和停止位。而同步串行通信是 以数据块为信息单位传送,每帧信息包括成百上千个字符,一旦传送开始,要 求每帧信息内的

5、每一位都同步。通用异步收发器 UART是 PC中最主要的串行通信接口之一,其数据帧格式如下 所示。UART数据帧包含 4 部分:起始位、数据位、奇偶校验位 ( 可选) 和停止位,各部 分的意义如下: 起始位,先发出 1个逻辑“ 0”(低电平 )信号,表示开始传输字符数据位,紧接着起始位之后,是要传送的有效信息 数据位的个数可以是 5、6、7、8 等,构成 1 个字符。通常采用 ASCII 码,低位 在前,高位在后,靠时钟定位。奇偶校验位,数据位加上这一位后,使得“ 1”的位数应为偶数 ( 偶校验 ) 或奇数 ( 奇校验 ) ,以此来校验数据传送的正确性。停止位, 1个字符数据的结束标志。可以是

6、 1位、15 位、 2位的高电平。 空闲位,不定长,处于逻辑“ 1”(高电平 )状态,表示当前线路上没有数据传 送。3 驱动的实现SPORT只提供同步串行数据传送, ADSPBF561通过 UART提供异步 RS一 232 数 据传送。通过软件设置和处理, SPORT口可以作为 UART异步串口来使用。在应 用程序中,写入开发板上 SPORT口的内容可以通过简单的硬件转接,在主机端 用超级终端等软件接收,使用起来与 UART口一样。出于产品开发的需要,本设 计利用 DSP的同步串口输出调试信息,与 PC机进行异步通信。该产品是一款网 络视频监控终端,以 ADSPBF561为硬件核心, Clin

7、ux2 6 为软件核心。31 设备驱动原理设备驱动程序是操作系统内核与机器硬件之间的接口,为应用程序屏蔽了硬件 的细节。在应用程序看来,硬件设备只是一个特殊的设备文件,应用程序可以 像操作普通文件一样对硬件设备进行操作。而事实上,对硬件的所有实际操作 都是由用户空间的应用程序调用内核空间的驱动程序完成的。Clinux 内核驱动架构如图 1 所示。 Clinux 使用数据结构 struct file_operations 为所有的设备文件提供了统一的操作函数接口。该数据结构 中包括许多操作函数的指针,如 open() 、close() 、 read() 和 write() 等。不 同类型的文件有

8、不同的。 file_operations 成员函数。每个进程对设备的操作 最终都会转换成对 file_operations 结构的访问。在驱动程序中,首先要根据 驱动程序的功能完成 file_operations 结构中各函数的实现,不需要的函数接 口可直接在 file_operations 结构中初始化为 NULL。 file_operations 变量会 在驱动程序初始化时,注册到系统内部;当操作系统对设备进行操作时,会调 用驱动程序注册的 file_opera tions 结构中的函数,实现相应功能。32 主要函数实现ADSPBF561 的 SPORT口是全双工的,可以同时发送和接收数据

9、。本驱动主要 通过软件设置和处理,利用 SPORT口的发送功能,发送 16 位的串行数据字。其 中有效数据位 8 位,最低位在前,拥有与 UART异步数据相同的数据格式,在 主机端可用超级终端等软件接收。驱动中需在 file_operations 结构里实现的主要接口函数有 open() ,write() 和 ioetl() 。(1)open() 函数在 open() 函数中,需初始化 SPORTl口相应的寄存器。以下是几个重要的寄存 器设置。 SPORTl_TCLKDI:V SPORTl口发送时钟频率设置。SPORTl_TCLKDIV=(SYS_CLOCK_FREQUE2N*CMYODEM_

10、BAUD_RAT一E) )1 ; *SYS_CLOCK_FREQUE为NC系Y统时钟频率,通过测试,此处应取值为 98 390 000。 MODEM_BAUD_R为AT波E特率,用户可通过调用 iootl() 进行设置 * SPORTl_TFSDI:V SPORTl口的发送帧同步频率设置,确定在 TFS脉冲前要计 数的发送时钟周期数。 SPORTl_TFSDIV=0x000;f SPORTl_TCR:2设置串行通信字长。 SPORTl_TCR2=0x000;f 设置串行通 信字长为 16 位 SPORTl_TCR:l SPORTl口的主要控制寄存器。 SPORTl_TCRl=0x061;3 *

11、 传 输使能。发送数据时,设置低位优先,设置串口为内部时钟,内部产生帧同步 信号,传送时可按照实际的波特率发送数据 * (2)write() 函数write() 函数的主要功能是将应用程序中写入 SPORT口的数据转换成 UART的数 据格式输出,主要实现流程如下: 分配缓冲区以存放转换后的数据 ( 用 kmalloc 实现)数据格式的转换。要用 SPORT口模拟 UART口,就要使从 SPORT口发出的数据 与从 UART口发出的数据具有相同的数据格式。在驱动中将从 SPORT口发出的 数据设置为 1位起始位、 8位数据位、 1位停止位,即“ O DO D1 D2 D3 D4 D5 D6 D7 l ”。停止位与

温馨提示

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

评论

0/150

提交评论