运动控制芯片

2024-11-12

运动控制芯片(精选7篇)

运动控制芯片 篇1

1、引言

MCX314As是日本NOVA电子有限公司研制的DSP运动控制专用芯片, 性能优良、接口简单、编程方便、工作可靠, 可广泛应用于数控机床、机器人等领域的运动控制。芯片能与8位或16位数据总线接口, 通过命令、数据和状态等寄存器实现4轴3联动的位置、速度、加速度等的运动控制和实时监控, 实现直线、圆弧、位元3种模式的轨迹插补, 输出脉冲频率达4 MHz。每轴都有伺服反馈输入端、4个输入点和8个输出点, 能独立地设置为恒速、线性或S曲线加/减速控制方式, 并有2个32位的逻辑、实际位置计数器和状态比较寄存器, 实现位置的闭环控制。

2、驱动程序设计原理

驱动程序实际上就是对I/O设备的控制, 它包含一系列函数实现控制功能。Linux操作系统是一种基于文件的操作系统, 也就是说所有的设备都是文件, 通过操作文件可以达到对设备的控制。如果应用程序需要对实际硬件进行操作时, 只要使用和普通文件操作一样的系统调用 (如open () 、close () 、read () 、write () 函数等) 就能达到目的。

系统调用是Linux内核和应用程序之间的接口, 设备驱动程序是Linux系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节, 这样在应用程序看来, 硬件设备只是一个设备文件, 因而应用程序可以像操作普通文件一样对硬件设备进行操作。

设备驱动程序主要完成以下功能:

(1) 对设备的初始化和释放。

(2) 把数据从内核传送到硬件, 以及从硬件读取数据。

(3) 读取应用程序传送给设备文件的数据和回送应用程序请求的数据。

(4) 检测和处理设备出现的错误。

Linux内核有三种类型的设备驱动程序:字符设备驱动程序、块设备驱动程序和网络设备驱动程序。由于操作数控运动控制器MCX314As从程序设计的角度来看就是按照一定的时序读写其内部寄存器, 这与Linux下的字符设备驱动相似, 因此把数控运动控制芯片的设备驱动类型定位为字符设备驱动。

字符设备 (char device) 是Linux最简单的设备, 它与普通文件之间的区别是:普通文件可以来回读写, 而大多数的字符设备仅仅是数据通道, 只能顺序读写。应用程序使用标准系统调用打开、读取、写和关闭, 这就使字符设备好像普通文件一样被访问。

3、运动控制芯片MCX314As驱动程序的设计

运动控制芯片驱动程序的设计主要步骤如下:

3.1 定义主次设备号

主设备号的作用就是声明设备所使用的驱动程序。驱动程序和主设备号是一一对应的, 当打开一个设备文件时, 操作系统就已经知道这个设备所对应的驱动程序。次设备号则用来区分使用相同驱动程序的同类设备, 如果系统中有两块相同的运动控制卡, 那么他们共享相同的驱动程序, 主设备号相同, 但是为了区别这两个相同的硬件设备, 那么就必须用次设备号来进行区分。

3.2 驱动模块加载与卸载函数

驱动程序是内核的一部分。为控制内核的大小, 运动控制芯片驱动程序采用动态加载的方式, 初始化函数为mcx314a_init () 。在Linux2.6内核中, 使用cdev结构体描述一个字符设备。在驱动模块加载函数中应该实现设备号的申请和cdev的注册, 而在卸载函数中应实现设备号的释放和cdev的注销。

3.3 file_operations结构体的初始化

只有初始化函数是不能实现对设备控制的任何操作的, 因此在驱动程序模块中, 还必须包括像file_operations这样的结构体, file_operations结构体中成员函数是字符设备驱动与内核的接口, 是用户空间对Linux进行系统调用最终的落实者, 是实现设备控制操作的入口函数。

设备驱动程序所提供的这组入口点由定义在中的file_operations数据结构向系统进行说明。设备驱动写函数中, filp是文件结构体指针, buf是用户空间内存的地址, 该地址在内核空间不能直接读写, size是要写的字节数, ppos是写的位置相对于文件开头的偏移。

由于内核空间与用户空间的内存不能直接互访, 因此借助了copy_from_user () 完成用户空间到内核空间的拷贝, 以及copy_to_user () 完成内核空间到用户空间的拷贝。IO控制函数的cmd参数为事先定义的IO控制命令, 而arg为对应于该命令的参数。

4、运动控制函数库的设计

我们在系统调用接口的基础上根据数控系统的要求以动态链接库的形式扩展出了丰富的运动控制函数, 专门用于管理与运动控制芯片MCX314As相关的操作。有了这样的动态链接库, 我们可以方便的添加、删除、修改里面的函数, 也能够对函数库里面的函数进行二次开发, 极大提高了系统软件的灵活性和开放性。

我们将运动控制动态链接库中的函数分为以下五类:

(1) 板卡初始化函数; (初始化运动卡、关闭运动卡)

(2) 参数设置函数 (读写寄存器/IO函数、设置初速度、速度等运动参数) ;

(3) 状态读取函数 (读取当前位置、原点和限位开关状态等) ;

(4) 运动函数 (直线插补、圆弧插补、位插补、回零等) ;

(5) 停止和中断管理函数 (急停和减速等) ;

运动控制函数的编写。

void outpw (int base, int data) /*base是指MCX314映射以后寄存器的地址*/

在完成运动控制函数的*.c和*.h文件后, 用命令#arm-linuxgcc*_a.c*_b.c*_c.c-fPIC-shared-o libnc.so来生成嵌入式Linux系统下的动态链接库*.so文件。这样, 上层应用程序只需反复调用动态链接库里面的这些函数, 即可执行复杂的运动控制。

5、结语

我们以动态链接库的形式设计了数控运动控制函数库, 目的是为了简化软件结构, 充分发挥MCX314As的功能, 实现复杂的数控运动控制。这样更有利于对函数库里面的函数进行二次开发, 极大地提高了系统软件的灵活性和开放性。

参考文献

[1]冯国进编著.嵌入式Linux驱动程序设计从入门到精通[M].北京:清华大学出版社, 2008.3.

[2]王太勇, 王涛, 杨洁等.基于嵌入式技术的数控系统开发设计[J].天津大学学报, 2006, 39 (12) :1509-1515.

[3]张建民.基于MCX314控制器的机床数控系统设计[J].现代制造工程, 2005, 3:57-59.

运动控制芯片 篇2

赛灵思公司全球大学计划总监Patrick Lysaght表示:“我们非常高兴地看到越来越多的高校和知名企业加入到赛灵思率先发起的开源硬件事业中。借助赛灵思领先一代的产品组合和设计工具—Zynq®-7000 All Programmable So C和Vivado设计套件, 开源硬件大赛为中国“智”造提供了源头创新的强大平台。”

据观察, Xilinx正从单纯的FPGA芯片供应商向系统级解决方案供应商转变。自从28nm产品, 尤其Zynq So C和Vivado设计套件的推出, Xilinx已有Smarter Core的IP产品, 还有专门针对Smarter Vision、Smarter Network等一系列的系统级解决方案。而本届Open HW也是将器件和工具都选定在Zynq和Vivado。可以说整个大赛就是在传递这样一个信息——从芯片级到系统级。

基于TGAM芯片的脑电控制小车 篇3

1脑电信号的采集和分析

1.1 TGAM简介。TGAM(Think Gear AM)是美国神念科技所开发的对脑电信号进行提取处理的模块,利用一个干式电极,他可以从人的大脑中检测微弱的脑电信号,并同时过滤掉周围的噪音及其他电力干扰,最后转化为数字信号进行控制。

1.2脑电信号的采集。在大脑活动时,脑皮质细胞群之间形成电位差,从而在大脑皮质的细胞外产生电流。它记录大脑活动时的电波变化,是脑神经细胞的电生理活动在大脑皮层或头皮表面的总体映[1]。通过以TGAM为核心的脑电采集设备Mind Reader对前额皮肤的实时电压进行采集放大。

原始数据rawdata和电压之间的关系为:实时电压=rawdata*(1.8/4096)/2000;放大后电压=实时电压*2000;

1.3对脑电信号分析。通过对脑电的采集可以得到原始数据rawdata,再对原始数据rawdata进行处理可以计算出xxHigh和xxLow,他们之间的关系如下:

通过烧录在TGAM里的C#程序对数据进行解析,该程序同时计算出了专注度Attention,放松度Meditation的值。这些数据以数据包的形式发送,每秒大约发送513个数据包,发送的包分为大包和小包两种,其中小包512个用于数据校验,数据校验后符合要求则保留,不符合要求则舍弃,丢包率在10%以下是不会对结果造成影响的。大包一个,为最后TGAM解析计算出的有直接用于的数据,包括信号强度Signal,专注度Attention和放松度Meditation等,两种包格式为

1.4数据采集结果

通过串口接收到的数据如图1所示。

接收的脑电波的波形显示如图2所示。

2脑电信号对小车的调速控制

2.1主控制器STM32F103vet6。STM32F103vet6使用高性能的ARMCortexTM-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器,丰富的增强I/O端口和联接到两条APB总线的外设。包含3个12位的ADC、4个通用16位定时器和2个PWM定时器等[2]。由于需要对TGAM传输来的信号进行高速的处理,普通的51单片机主频很低,不能胜任这个工作,所以选择了STM32F103vet6。

2.2脑电信号对小车的控制过程。脑电控制小车的整体架构图如图3所示。

首先,用Mind Reader耳机将人脑前额的电信号采集出来,再经过TGAM将脑电原始的电信号量化,在对数据分析处理将专注度的值解析出来,通过蓝牙发送给装在小车上的主控芯片,主控芯片筛选到大包,将信号强度、专注度等提取出来,专注度值越高,放松度值越低小车速度越快,最终脑电波对小车速度的控制。

2.3脑电控制小车的程序设计。在控制过程中较难实现的是对脑电信号的提取和滤波的过程,由于每秒主控芯片接收的数据很庞大,对其处理起来就比较麻烦,而且在数据传输过程中存在其他干扰,需要对其进行滤波。在数据处理完后,需要用STM32的USART来接收脑电信号并对小车车速实现平稳调速,则需配置STM32的USART,配置定时器输出4路PWM对四个电机进行控制,并对脑电信号做平滑处理。最终实现脑电控制小车。

3结论

这是一种新型的基于脑电控制小车系统,在控制渠道上新增了脑电控制。通过采集用户专注时的脑电信号,通过蓝牙传输技术,小车主控芯片对脑电信号处理,提取其中的特征信号与相应的速度值进行匹配,进而实现人脑对小车的控制。

参考文献

[1]李颖洁,邱意弘,朱贻盛等.脑电信号分析方法及其应用[M].北京:科学出版社,2009,2

运动控制芯片 篇4

使用光学鼠标芯片进行运动检测可以有效避免与被测物或被测平面接触带来的系统误差, 同时这些芯片非常廉价而且容易获得。结合惯性定位的思想, 这些运动检测设备可以被应用在包括机器人导航、室内车辆定位等很多领域, 弥补了GPS系统在室内无法使用的空缺。

光学鼠标芯片用于运动检测和惯性定位的方法已经有了一些研究。文献[1]描述了一个基于光学鼠标芯片和单片机的运动检测系统的实现。文献[3]描述了通过安排光学鼠标组排布和位置关系来减少系统误差的方法。

虽然如此, 在实际使用中仍然有一些问题没有解决。本文试图通过以下方法解决这些问题:1、隔离地对运动检测进行误差分析和坐标变换的方法。通过这种方法, 可以在制造过程中方便地对设备进行静态校准。2、本文提出一种改变光路来提高最大检测速度和离地高度的方法, 使得设备可以应用在更广的领域。

本文首先给出使用两个鼠标芯片进行运动检测的方法, 然后论述如何系统化的对检测过程进行设计以隔离坐标变换和误差消除过程, 之后提出通过调整光路提高设备可用性的设计思路和简单示例, 最后简要介绍在实验室中已经实现的设备。

2 基本算法

由于目前光学鼠标芯片并不能检测转角, 或者说处理设备不能读取转角, 因此至少需要两个鼠标芯片的位移信息才能同时得到设备的转角和位移。为了便于讨论, 这里将两个传感器连线的中点视为定位设备的中心。

假设两个传感器传回的位移信息分别为x軆1, x軆2它们都是一个二维向量, 分别表示每个传感器在各自坐标系下的位移。需要注意的是, 由于x軆1和x軆2分别属于不同的坐标系, 要计算设备的总位移x軆, 需要将它们变换到同一个坐标系下。这里为了方便讨论, 已经将两个向量的坐标系转化为设备所在的坐标系。

如图1所示。l1和l2分别代表两个相邻数据采集时刻, 定位设备在全局坐标下的位置。根据几何关系容易得出设备中心的位移符合下列等式下面来求定位设备的偏移角, 如图2。将l2平移使得A1与A2重合, 很显然l1=l2=1。根据几何关系可得:

当采集频率足够大, θ非常小时, 使用等式进行计算可以显著的降低计算复杂性。θ的正负号可以通过x軆1-x軆2的方向判断。

3 静态校准方法

做为一个惯性定位设备, 需要保证每次采集的数据误差非常小。在实际应用中, 要有一套可行的步骤对设备进行静态校准, 即在被测数据可知的状态下校准设备。这里对算法流程进行重新设计, 分离误差消除过程, 从而方便静态校准过程。

3.1 分离地坐标变换和误差消除设计

在基本算法中提到, 对于采集的信息, 需要先进行坐标变换, 将两个采集到的向量信息转换到一致的坐标系中。

根据实验和分析, 本定位设备的误差主要源于传感器的安放问题:两个传感器在安装时不可避免有偏差, 这些偏差既有水平方向上的, 也有竖直方向上的。前者造成两个位移无法正确的变换到同一个坐标系下, 而后者造成传感器图像的畸变, 最终造成位移值的误差。通过分析, 可以发现上述两种误差都是线性误差, 即这些误差的大小和被测值之间只是线性关系。

在完成误差消除和坐标归一 (即将两个传感器的数据统一到同一个设备坐标下) 后, 需要根据当前已有的偏转角将设备坐标下的位移变换到全局坐标。对于偏转角, 由于全局坐标系和设备坐标系是同构的, 因此直接将其叠加到已有偏转角即可。分离地坐标变换和误差消除的算法流程如下图所示。

如上文所说, 设备的误差是线性的, 因此误差消除过程既是一个线性变换;而另一方面, 变换到设备坐标的过程同样是一个线性变换。因此, 在实现时这两个线性变换可以合并为一个线性变换。

下面给出这一过程的计算。x軆1和x軆2是没有经过任何变换, 从传感器传来的位移数据。将这些数据 (均为2维向量) 转换为仿射坐标表示, 如x軆1= (x, y, l) 。之后x軆1和x軆2分别进行不同仿射变换可同时进行坐标变换和线性误差的消除。

变换后的坐标和即处在同一个坐标系下, 将其输入到基本算法中可计算出在设备坐标系下的位移和偏移。如果全局坐标下的位移为x軆, 偏移角为θ时, 新的坐标x軆'1和偏移角θ'可表示为

3.2 静态校准流程

在静态校准的过程中, 可以特意选择没有旋转角度的数据, 此时x軆'-x軆=△x軆。这样只要多次测量已知的位移x軆'-x軆=△x軆, 根据传感器测得的值x軆1和x軆2, 即可求出A1和A2的各元素的值。由于两个矩阵为仿射变换矩阵, 总共有12个 (每个矩阵6个) 参数需要确定。

4 光路调整

当直接使用光学鼠标芯片进行位移检测时, 以下两个问题需要着重考虑。1、定位设备必须紧贴或靠近被测表面, 在实际应用中这个条件很难满足, 比如将其安装在货车上时。2、定位设备在检测高速运动时无法正常地测量位移。市面上的鼠标芯片最大探测速度通常是200-600mm/s。用于检测车辆的位移, 甚至人的行走这一速率也是远远不够的。而这些问题无法用任何算法修正。为了解决这两个问题, 需要对于光路进行一定的改变并且重新对设备进行静态校准。

如图4所示, 在鼠标芯片之前加入一个凸透镜 (组) , 调整光路使前半部分光学系统的焦平面与原鼠标芯片的像采集平面重合。根据凸透镜成像公式111

其中l为物大小, h为像大小。在本例中, 前半部在鼠标的采集平面处成的实像会被鼠标芯片当作真实的物体进行测量, 因此l即是需要被测的位移最大值。

在选择20mm焦距的球面凸透镜时, 选择物距u=420mm, 成像位置v=21mm。此时, 即当实际位移为20单位时, 测量传感器得到的数据将是1单位, 这使得刚才提到的最大检测速率提高到400-1200mm。另一方面, 这种设计方案使得整个设备与被测平面分开了40cm之多。需要注意的是, 一旦芯片抬离地面, 鼠标自带的照射LED就不能继续使用了, 需要使用自己的LED光线进行照明。如果需要远距离进行照射, 可能需要对LED的聚焦镜进行调整。

当使用上述方法进行改造之后, 需要重新进行前述的仿射矩阵的估计步骤。由于凸透镜成像将像的方向完全掉转, 仿射矩阵的符号会发生变化。

进行上述改装, 一方面由于使用了凸透镜系统, 定位设备可以更好的工作在被测表面不平整的环境下;另一方面, 由于这一改装实际降低了系统分辨率, 因此减低了检测的精确度。这是一对矛盾。在实际应用中对上述参数的选择难以通过通用的数学方法给出确定性的最优解。设计者需要根据应用特点, 在精确度和需要的传感器-被测表面距离以及最大检测速度间做出权衡, 反复测试多种焦距与物距 (像距) 的组合, 再做出选择, 才能达到最优化的应用效果。

5 实例

图5所示为上述系统在实验室环境下的实现。实验系统使用的鼠标为两个Logitech M100有线光电鼠标, 中间用钢条进行刚性连接。两端鼠标使用的安捷伦S5085芯片具有1000dpi的最大分辨率。

经过光路改造前, 实验中得到的最大探测速度为300mm/s。选择20mm焦距球面凸透镜, 物距420mm, 成像于21mm位置时, 最大探测速度为6000mm/s。由于距离过远, 需要在贴近地面的放置平面照射LED, 在实际应用中, 可以使用可调焦LED在远处进行照射。设备与一个ARM9单片机相连, 处理程序运行在Linux上。在进行坐标变换和误差消除之后, 设备测量旋转的误差, 测量位移的误差

摘要:本文提出一种使用鼠标芯片实现的非接触式高速运动检测设备。在简单介绍这种运动检测系统的原理之后, 本文提出了一套方案对设备进行校准并使得设备可以检测高于鼠标芯片本身能力的高速运动。本文提出的方案可以使这种廉价的非接触式运动检测设备应用在过去受到精度、离地高度、最大检测速度限制而无法应用的领域。应用范围从小型机器人到室内机动车等惯性定位领域。

关键词:光学鼠标,运动检测,高速,非接触

参考文献

[1]林邓伟, 邢文生.光电鼠标芯片组在无接触检测运动物体中的应用[J].微计算机信息, 2006, 7-2:131-133.

[2]雠永超等.基于CCD技术的非接触在线检测仪[J].微计算机信息, 2005, 2.

[3]Mauro Cimino, Prabhakar R.Pagilla.Optimal location of mouse sensors on mobile robots for position sensing (2011) .Automatica, 47, 22670-2272

运动控制芯片 篇5

一、芯片功能

MAX6954是一种采用四线串行接口的LED驱动器, 可以控制七段数码管、14段数码管、16段数码管以及多达16×8位的LED点阵显示器 (或相同数量的分立LED灯) , 并可通过串行端口进行级联, 此外, 该芯片针对数码管及LED的显示特点, 提供了设置方便的亮度设置及闪烁控制等功能。在键盘控制方面, 该芯片包括了5个I/O扩展端口 (GPIO) 以及可对这些端口进行设置以便对32个按键进行自动扫描和消抖操作的控制逻辑电路。

二、芯片的使用

(一) 芯片的基本硬件特性。

MAX6954的工作电源电压涵盖了2.7V到5.5V。因此, 可以直接用于典型的3.3V电源电压控制系统和5V电源电压控制系统, 具有良好的电源适用性。该芯片的外部引脚按照功能可划分为五大类:分别是电源引脚、SPI四线通信引脚、段/位驱动引脚、GPIO引脚、以及其他辅助引脚。

作为一种键盘显示扩展芯片, MAX6954与系统主控芯片之间的通信是通过兼容SPI的四线串行接口实现的, 包括三个输入口:时钟引脚CLK, 片选引脚珔CS珔和数据输入脚DIN, 以及一个数据输出脚DOUT。

(二) 兼容SPI的四线端口的使用。

在应用该键盘显示扩展芯片时, 用户最需要注意的就是这个SPI口的特性, 在掌握了其工作时序和数据格式之后, 再对芯片内部寄存器的功用加以熟悉, 也就基本掌握了这种芯片的使用方法。

这四个引脚有以下一些地方需要注意:第一, 在数据及时钟输入或输出该器件的时候, 珔CS珔必须保持低电平, 也就是主控芯片必须为珔CS珔引脚提供最高不超过0.6V的电平。第二, 当器件在CLK时钟上升沿对DIN采样的时候, DIN信号必须保持稳定。第三, 虽然SPI协议规定当MAX6954不可读写时 (也就是珔CS珔为高电平时) , DOUT引脚应该处于高阻态, 但是MAX6954的DOUT引脚却不会如此, 因此, 如果将多个MAX6954的DOUT引脚并联使用, 会出现意想不到的情况。

三、模拟器材当中MAX6954的运用方案

(一) 硬件部分方案。

在某型训练器材当中, 有关人机交互的部分要求实现对13个七段数码管、6个LED灯以及16个按键的控制, 我们采用了两片MAX6954分别控制显示部分和按键部分的方案, 这样, 虽然增加了一个芯片, 但是芯片属于同一种型号, 并未增加系统的复杂性, 而且, 将显示输出与键盘输入分开, 更有利于主控程序流程的清晰、明了。本方案中, 有关MAX6954显示部分的电路如图1、图2所示:

在该电路中, 所有的七段数码管均采用共阴型。与其他常见的驱动器不同, MAX6954的驱动引脚数量较少, 它是通过利用一种将部分端口交替作为阳极和阴极驱动器的多路开关技术来实现这一点的。

在上面的电路图中, 引脚O0到O7作为共阴数码管的位驱动, 用于确定是否显示某一位, O0到O18则用于确定数码管的某个段是否点亮。在上面的电路中, 每两位数码管共用一个位驱动, 这两位数码管的每一个段则由MAX6954的不同驱动脚驱动, 因此, 不会出现共用一个位驱动的两位数码管显示完全一样的情况。对于单独的六个LED管, 也采用了与七段数码管相同的办法, 将其中的每一个LED看作是数码管中的一个段, 这样, 就同时实现了对数码管和单独的LED的有效驱动。图3、图4是本方案中的键盘驱动部分硬件 (键盘为普通行列键盘) 连接图。

从对MAX6954的功能描述中可以知道, 该芯片通过P0到P3引脚以及O0到O7引脚的组合来实现对按键的扫描, 其中P0到P3负责列扫描, O0到O7负责行扫描。由于本方案中用到的按键共有16个, 因此, 只需要P0和P1两个列扫描引脚即可实现, 另外, 为了防止多个按键被同时按下时, 引起行扫描引脚短路 (O0到O7引脚都是输出引脚, 短路容易引起引脚损坏) , 因此, 需要在按键上串联二极管。另外, GPIO引脚中的P4引脚作为中断输出引脚, 当有按键被按下时, 该引脚会向主控制器发出中断信号, 以便主控制器及时读取相应的键值。另外, 在硬件设计方面还有以下几点需要注意:一是MAX6954要想正常工作必须有时钟源, 在本方案中, 采用了内部时钟;二是为了避免信号反射, 在SPI通信口的四根口线引脚上必须加上电容, 在本方案中, 电容值确定为33p F, 实验证明, 通信稳定可靠。

(二) 软件部分方案。

软件部分包括初始化、数码管数据显示、闪烁显示、键盘处理程序等, 下面对该模拟训练器材方案中的初始化部分和键盘处理部分加以介绍。

1. 芯片初始化。

在本系统的软件部分, 首先根据系统的实际需求, 对MAX6954的相应寄存器进行了设置。设置流程如下所示:

具体初始化设置过程可根据实际情况加以增减。

2. 键盘处理程序。

在本系统中, 当有按键按下时, MAX6954会通过P4引脚向主芯片发出中断信号, 当主芯片响应中断后, 会在中断程序里设置相应的标志变量并退出。在主程序中, 检测到标志变量发生改变后, 会向MAX6954发出读回键值的命令。以处理P0连接的按键为例, 读回键值的流程图如5所示。

四、结语

该技术方案应用于某型侦察模拟训练器材的人机界面部分, 实现了良好的显示和键盘控制。实践证明, 利用MAX6954设计的显示和键盘控制电路结构简单、功能可靠, 有非常广阔的应用前景。

参考文献

[1]温德尔;谢运祥、王晓刚译.LED驱动电路设计[M].北京:人民邮电出版社, 2009

运动控制芯片 篇6

USB设备的开发,大体可分为设备端开发和主机端开发两部分。设备端驱动程序是设备端开发的核心,它主要完成设备初始化、USB协议标准请求处理以及其它应用程序等。主机端开发[3,4],主要是在Windows下开发USB设备驱动程序。

设备控制端一般由单片机和USB控制芯片构成。在硬件设计中,要根据硬件系统的性能要求进行器件的选型,还要充分考虑性能价格比以及应用的方便。本文以ATMEL单片机和PHILIPS公司的PDIUSBD12构成USB设备控制端,对PDIUSBD12芯片及应用进行研究。

1 USB控制器PDIUSBD12

目前,市场上供应的USB控制器主要有两种:带USB接口的单片机(MCU)或纯粹的USB接口芯片。带USB接口的单片机,但由于价格、开发工具以及单片机性能有限等问题,所以一般不推荐选用。

纯粹的USB接口芯片仅处理USB通信,必须有一个外部微处理器来进行协议处理和数据交换。典型产品有PHILIPS公司的PDIUSBD11(I2C接口),PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设计(硬件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序、PC机的USB接口通信程序,无需对原有产品系统结构做很大的改动)。PHILIPS公司的PDIUSBD12具有独特优点,常在USB接口系统中选用。

1.1 PDIUSBD12的特点

PDIUSBD12是一款性价比很高、符合通用串行总线(USB)1.1版规范的USB接口器件,它通常用在微控制器系统中实现微控制器与PC机进行通信的高速通用并行接口。它还支持本地的DMA传输。这种USB控制器使得设计者可以选择最合适的微控制器,从而使开发更具灵活性,减少了开发周期、风险及费用,进而为USB外设的实现提供了一种最快捷的解决方案。

除此之外,PDIUSBD12器件还具有以下特性:

1)高性能USB接口器件,集成了SIE,FIFO存储器、收发器以及电压调整器;

2)符合大多数器件的分类规格;

3)可与任何外部微控制器/微处理实现高速并行接口(2M字节/秒);

4)完全自治的直接内存存取(DMA)操作;集成320字节多结构FIFO存储器;

5)主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输;

6)在批量模式和同步模式下均可实现1 M字节/秒的数据传输速率;具有良好EMI特性的总线供电能力;

7)PDIUSBD12所具有的低功耗挂起连同LazyClock输出可以满足使用ACPI、OnNOW和USB电源管理的要求,低的操作功耗还使总线供电于外设成为可能;

8)可通过软件控制与USB的连接;

9)采用GoodLink技术的连接指示器,在通讯时使LED闪烁;

10)可编程的时钟频率输出;

11)双电源操作3.3±0.3 V或扩展的5V电源,范围为3.6V~5.5V;12)多中断模式,支持批量和同步传输。

1.2 PDIUSBD12的管脚配置

PDIUSBD12的管脚排列如图1所示,其管脚说明如表1所列。

1.3 PDIUSBD12的内部结构与功能

PDIUSBD 12的功能框图如图2所示,其功能和相关说明如下。

1)模拟收发器:

集成的模拟收发器接口可通过终端电阻直接与USB电缆相连。

2)电压调整器

片内集成了一个3.3V的调整器用于模拟收发器的供电。该电压还作为输出连接到1.5K?的内部上拉电阻。可选择PDIUSBD12提供的带1.5KΩ内部上拉电阻的软件连接技术。

3)PLL

片内集成了6M到48M的时钟乘法PLL,因此可使用6M晶振,既降低成本,又降低EMI。

4)位时钟恢复

位时钟恢复电路使用4X过采样规则,从进入的USB数据流中恢复时钟。它能跟踪USB规定范围内的抖动和频漂。

5)PHILIPS串行接口引擎(PSIE)

PHILIPS SIE实现了全部的USB协议层,完全由硬件实现而无需固件的参与。该模块的功能包括:同步模式的识别、并行/串行转换、位填充/解除填充、CRC校验/产生、PID校验/产生、地址识别和握手评估/产生等功能。

注:在没有使用到DMA方式的时候,DMACK_N和EOT_N要求接上拉电阻。

6)SoftConnectTM

与USB的连接是通过1.5K?的上拉电阻将D+(用于告诉USB器件)置为高实现的。1.5KΩ上拉电阻集成在PDIUSBD12片内,默认状态下不与VCC相连。连接的建立通过外部系统微控制器发送命令来实现。这就允许系统微控制器在决定与USB建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。

PDIUSBD12在连接可以建立之前会检测USB VBUS是否可用。VBUS可通过EOT_N管脚进行检测。

7)GoodLinkTM

GoodLinkTM技术可提供良好的USB连接指示。在枚举中,LED指示根据通信的状况间歇闪烁。当PDIUSBD12成功的枚举和配置后,LED指示将一直点亮。随后与PDIUSBD12之间成功的传输(带应答)将关闭LED,处于挂起状态时,LED将会关闭。

8)存储器管理单元(MMU)和集成RAM

在以12Mb/s的速率传输并与微控制器并口相连时,MMU和集成RAM作为USB之向速度差异的缓冲区。这就允许微控制器以它自己的速率对USB信息包进行读写。

9)并行和DMA接口

PDIUSBD12对于微控制器而言,看起来就象一个带有8位数据总线和一个地址位的存储器件。PDIUSBD12支持多路复用和非复用的地址和数据总线。还支持主端点(端点2)和本地共享RAM之间直接读取的DMA传输。支持单周期和突发模式的DMA传输,且可以和对其他端点的正常I/O操作交叉进行。DMA操作中的自动指针处理,在跨过缓冲区边界时无需本地CPU的干预。

1.4 PDIUSBD12的端点和指令集

PDIUSBD12的端点适用于不同类型的设备,如图像、打印机、海量存储器和通信设备。PDIUSBD12支持3个端点,其中主端点最多能保存128B,自动切换的双缓冲结构允许保存256B,允许USB和本地CPU之间的并行读写操作,这既增加了数据的吞吐量,也导致了缓冲区操作的透明性。

PDIUSBD12主端点可通过“SET MODE”命令配置为模式0~3四种不同的模式。模式0(NON-ISO模式)为非同步传输。模式1(ISO-OUT模式)为同步输出传输。模式2(ISO-IN模式)为同步输入传输。模式3(ISO-IO模式)为同步输入输出传输。

PDIUSBD12有自己的指令集,用于管理USB总线事务,这些指令在微处理器控制下执行,可以分为三类:初始化、数据流和通用命令。模式配置和指令集在此不作详述。

2 PDIUSBD12的典型连接

PDIUSBD12与单片机的接口有两种方式:多路地址/数据总线配置方式和单独地址/数据总线配置方式。当PDIUSBD12接收到主机的有效信息时,会产生一个中断通知单片机进行处理。

在多路地址/数据总线配置方式中使用了单片机的INT、ALE、WR、RD和P0口,PDIUSBD12在ALE下降沿的时候对单片机的输出地址进行锁存。在这种方式中单片机使用MOVX指令就可以对PDIUSBD12进行数据操作了。倘若输出地址为奇数表示对PDIUSBD12发送指令,输出的地址为偶数时则表示对PDIUSBD12进行数据传输。在我们的实际应用中,USB接口系统采用的就是多路地址/数据总线接口方式。

在USB接口电路的设计中,PDIUSBD12完成所有的USB传输功能,与PDIUSBD12相连的是微处理器AT89S51,微处理器底层应用程序完成USB总线枚举过程、PDIUSBD12的中断访问过程、电源管理功能和USB协议层的功能。USB控制芯片PDIUSBD12有能与微控制器接口的8位并行数据总线。基于PIUSBD12的USB接口电路原理图如图3。

PDIUSBD12具有内置的上电复位电路。所以RESET_N脚可以直接连到Vcc。但是如果静电放电足够大,会导致PDIUSBD12进入不确定状态。为了避免这种状态出现,在这使用外部控制源(AT89S51)提供PDIUSBD12的复位信号。而不是将RESET_N脚直接连到Vcc。另外有个好处就是复位变得容易,在PDIUSBD12在数据传输请求时可随时复位。

3 结束语

本文讨论了USB核心芯片PDIUSBD12的特性,给出了PDIUSBD12与AT89S51连接的电路图,可以看出PDIUSBD12控制器为USB外设的实现提供了一种最快捷的解决方案,可以使设计者选择最合适的微控制器,从而使开发更加灵活,缩短了开发周期、降低了风险和开发费用。本文对USB协议、软件设计以及USB外设的固件编程没有做更深入的探讨。

参考文献

[1]武安河.Windows2000/XP WDM设备驱动程序开发[M].北京:电子工业出版社,2003:284-325.

[2]周涛,张辉.采用PDlUSBU12的USB系统固件程序设计[J].电子技术应用[J].200329(5):70-72.

[3]陈军波.USB接口芯片PDIUSBD12及应用[J].国外电子元器件,2002,11:47-49.

运动控制芯片 篇7

消防应急灯具作为一种重要的消防器材, 广泛应用于宾馆、商场、娱乐场所等公众聚集场所, 其功能是在这些场所发生火灾断电后, 应急灯具自动照明, 引导被困人员疏散。消防应急疏散照明技术是一项重要的救生疏散技术。为了降低应急灯具的生产成本和功耗, 以及其设备可靠性的问题, 设计一种消防应急灯具的专用控制芯片, 该芯片可完全达到国家标准并大大降低产品的开发难度。

1芯片的内部组成

目前市场上的消防应急灯按应急供电方式大致分为:自带电源型和集中电源型。自带电源型单个系统自带备用蓄电池, 平时由市电供电, 只有当市电电源切断时, 备用电源自动投入运行[1]。集中电源型是在主电故障时, 利用蓄电池提供的直流电源, 逆变输出交流电压, 而主电正常时, 则由开关电路控制, 直接将主电输出[2]。

本芯片主要用于各种自带电源型的消防应急照明灯具和疏散灯具中, 其系统框图如图1所示。

1.1 8051微处理器IP核

8051是一款单芯片、快速的8位微处理器IP核。它的8位功能性的嵌入式控制器支持所有的ASM51指令集以及80C31的相同指令。指令是计算机用于控制各部分功能部件完成某一动作的指令和命令[3]。8051核的指令按照功能分为5类:数据传送指令、算术运算指令、逻辑运算及移位指令、控制转移指令、位操作指令。丰富的指令可以增加IP核的使用范围, 同时8051提供软件和硬件中断, 一个串行通信的接口以及两个定时器。

在对8051的仿真测试过程中, 具体测试到哪部分就针对哪部分编写相应的测试程序, 对后续添加的模块要根据模块的功能编写相应的测试程序。

对8051核的仿真测试进行的主要测试内容如下:各个器件的测试, 包括加法器、乘/除法器、内/外部RAM、ROM、特殊功能寄存器、定时器、外部中断、UART、P0~P3管口以及每一条指令的测试, 共256个操作码。图2为定时器0的仿真测试波形。

8051微处理器IP核作为该芯片的核心控制部分, 具有运算速度快、工作电压范围广、工作功耗低等优点。在软硬件功能划分上, 该模块主要利用软件完成电检测, 工作状态显示, 自复式检测功能和主电故障保护功能。

同时8051是开源的代码设计核, 可用于ASIC的再使用以及FPGA开发。

1.2 模/数转换模块

实现A/D转换的基本方法有十几种, 常用的有计数法、逐次逼近法、双斜积分法和并行转换法。由于逐次逼近式A/D转换具有速度快、分辨率高的优点, 而且采用这种方法的芯片成本较低, 因此在计算机数据采集系统之中获得了广泛的应用。

这类A/D转换器的转换原理建立在逐次逼近的基础之上, 即把输入电压和一组从参考电压分层得到的量化电压进行比较, 比较从最大的量化电压开始, 由粗到细逐次进行, 由每次比较的结果来确定对应的位是1还是0, 不断比较, 不断逼近, 直到两者的差别小于某一误差范围时即完成一次转换[4]。

1.3 RS 485总线模块

在工业控制及测量领域较为常用的网络之一就是物理层采用RS 485通信接口所组成的工控设备网络。这种通信接口可以十分方便地将许多设备组成一个控制网络。RS 485通信协议的物理层是利用物理媒介实现物理连接的功能描述和执行连接的规程, 提供用于建立、保持和断开物理连接的、机械的、电气的、功能的和过程的条件。数据链路层用于建立、维持和拆除链路连接, 实现无差错传输的功能。应用层针对不同的应用, 利用链路层提供的服务, 完成不同通信节点之间的通信[5]。

1.4 电源监控保护模块

电池是应急灯的重要组成部分, 过度放电会影响电池的寿命[6]。自带电源型消防应急灯具由于使用独立电源作为备用电源, 电池的特性会直接影响到应急时间、光源的亮度, 因此采用合适的电池非常重要。目前, 消防应急灯具普遍采用镍铬或镍氢充电电池。同时, 控制系统必须对电池进行检测, 以实现对电源的保护。

1.5 光源监控保护模块

光源控制模块完成两个功能:应急状态下产生信号, 打开备用电源和光源的放电回路, 在市电正常时检测光源是否打开。标准规定:消防应急灯具的应急转换时间应不大于5 s, 高危险区域使用的消防应急灯具的应急转换时间不大于0.25 s。[7]

2结语

研制高度集成新技术、新标准的消防控制专用芯片, 无疑将大大降低设备制造商的产品开发难度、成本与能耗, 提高设备的可靠性。这已经成为芯片设计者、设备制造商追求的目标。随着企业生产规模的不断加大, 该芯片的成本还有进一步的降低空间。考虑到市场有对产品要求不断提高的趋势, 在设计时, 该芯片预留了系统升级更新的空间, 可在短时间内发展出衍生品种, 满足市场需求。

摘要:国内的消防应急灯具大多采用分立器件搭建而成, 很多无法达到国家标准。提出一种消防应急灯具专用控制芯片的设计方法, 具体介绍了芯片的内部组成部分, 构建了整体方案, 规划了芯片的功能单元并采用模块化设计思想。该芯片可有效增加应急灯具的稳定性, 防止静电干扰冲击, 降低生产成本并解决分立器件所带来的功能单一和设计不灵活等问题。

关键词:消防应急灯具,控制芯片,模块化架构,分立器件

参考文献

[1]陶平.应急灯控制芯片设计及应用[D].南京:东南大学, 2006.

[2]李贵仁.集中电源在消防应急照明中的应用[J].消防设备研究, 2004, 23 (5) :57-58.

[3]胡汉才.单片机原理及其接口技术[M].2版.北京:清华大学出版社, 2004.

[4]周荷琴, 吴秀清.微型计算机原理与接口技术[M].合肥:中国科学技术大学出版社, 2004.

[5]罗勇, 刘泽艺.一种RS 485总线自定义通信协议及其应用[J].单片机与嵌入式系统应用, 2002 (6) :25-27.

[6]李波, 李建明, 生亮田.消防应急灯具自动检测系统的设计[J].自动化仪表, 2007, 30 (6) :49-51.

上一篇:重庆区县报下一篇:置换反应