首页 >> 焊割炬

基于RTLinux的运动控制器MC400D的驱动程序设计北海

发布时间:2022-07-04 21:18:29 来源:亿丰五金网

基于RTLinux的运动控制器MC400D的驱动程序设计

基于RTLinux的运动控制器MC400D的驱动程序设计 2011年12月09日 来源: 在伺服机电控制系统中,除了要满足机电产品在性能上的高稳定性、高效率要求以外,还在系统的实时性、可靠性和多功能方面提出了更高的要求,尤其是军事领域的机电控制系统中,要求对事件的处理有极强的实时性。90年代以后,随着对实时性要求的提高,软件规模不断上升,实时内核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流[1]。在嵌入式应用中使用实时操作系统已成为当前嵌入式应用的一个热点、一种时尚。今天,RTOS已经在全球形成了一种产业[2]。其中一些著名的公司更是选中了象Linux、VxWorks、UC/OS-II操作系统作为开发多任务实时控制系统的工具。而在国内,虽然嵌入式应用开发很广,但该领域几乎还是空白。本文正是基于机电产品的嵌入式应用这一研究课题而展开的。在大型复杂的机电一体化产品中应用嵌入式实时操作系统对于我们来说还是比较陌生的,尚处于摸索阶段。软件方面,在综合比较多种实时操作系统如VxWorks、uc/os-ii等的基础上,作者最终选定了免费的、源代码开放的、功能齐全的实时操作系统RTLinux作为嵌入式机电产品研究的软件平台;硬件方面,由于在机电一体化产品中都离不开运动控制器,所以本文从研究由国防科技大学机电工程与自动化教研室开发的PCI接口的伺服运动控制卡MC400D入手,进行机电产品的嵌入式改造。   MC400系列运动控制器已成功运用于有四轴伺服交直流电机的大型控制系统中,系统的应用软件是用Visual C++融和LabWindows/CVI进行开发和设计的,软件控制代码约有120M,系统的稳定性和实时性不是很好,系统的运行需由硬盘启动,由工控机直接进行控制。为了适应武器装备对嵌入式控制系统的特殊需要,而且为了减少硬件成本,提高系统运行的稳定性,避免重复开发费用和减少开发时间,将原有的系统进行改造,深入研究机电产品中运动控制卡的设备驱动程序,以便于直接访问卡上的原有资源,并通过设定相应的运动控制参数,实现对电机的各种控制,从而开发出嵌入式RTLinux武器伺服系统。1 MC400系列运动控制卡及Windows下的控制程序分析运动控制器,是以实现预定运动轨迹目标,对以电机驱动的执行机构等设备进行控制的装置。运动控制器以其特有的灵活性和优秀的运动轨迹控制能力使许多工业生产设备焕发出勃勃生机,可以说,只要有伺服电机应用的场合就离不开运动控制器。  MC400系列运动控制器是由国防科技大学机电工程与自动化教研室自主开发的,设计为PCI接口的四轴通用型运动控制器。该卡采用DSP和CPLD相结合的结构,TMS320系列DSP控制器能将实时处理能力和控制器外设功能集于一身,主要处理轨迹规划、伺服控制等功能,CPLD主要处理外围接口电路,具有使用简单,可扩充性强,多用途,可编程,通用性强的特点,可直接用于交流伺服电机或直流伺服电机的控制,最大可同时控制4个电机。  卡的控制程序主要包括系统设置函数(如采样时间set_smpl_time()等)、伺服控制参数设置函数(如设定PID控制的比例函数set_kp())、轴参数设置函数(如设定一轴set_1())、运动参数设置函数、极限参数设置函数、位置捕获以及中断处理和参数更新函数等。2 RTLinux下的运动控制器的设备驱动程序  几乎每个系统操作最终都会映射到物理设备上。除了处理器、内存以及其他很有限的几个实体之外,所有设备控制操作都由与被控制设备相关的代码来完成。这段代码就叫做设备驱动程序(device driver),内核必须为系统中的每件外设嵌入相应的驱动程序,包括硬盘驱动器、键盘和磁带等。  通过Windows下的机电控制系统的分析,控制程序是针对系统的具体控制要求和功能而提出来的,与所采用的软件平台相关不大,而整个系统的驱动程序设计却是进行嵌入式系统改造的关键所在。2.1 RTLinux下的设备驱动程序简介  设备驱动程序在RTLinux内核中是一个个独立的“黑盒子”,使某个特定的硬件响应一个定义良好的内部编程接口,同时完全隐藏了设备的工作细节。用户操作通过一组标准化的调用来完成,而这些调用是和特定的驱动程序无关的。将这些调用映射到作用于实际硬件的设备特定的操作上,则是设备驱动程序的任务。这个编程接口能够使得驱动程序独立于内核的其他部分而建立,在需要的时候,可在运行时“插入”内核。这种模块化的特点,使得RTLinux驱动程序的编写变得简单。  MC400系列运动控制器设计为PCI接口的,所以该驱动程序的设计属于块设备驱动程序设计。  每个PCI外设都有一个总线号、一个设备号和一个功能号来标识。这可以从/proc/bus/pci/devices目录或者/proc/pci文件来查看PCI设备清单以及设备的I/O和内存。以下是本机用vi pci命令得到的有关PCI接口的运动控制卡MC400D的资源信息:Bus 0, device 20, function 0:Bridge: PCI device 10b5:5201(PLX Technology,Inc.)(rev 2).IRQ 5.Non_prefechable 32 bit memory at 0xdfffff80[0xdfffffff].I/O a

喷漆房

吸污净化车

减速垫

安利数码港

两相稳压器

友情链接