S12微处理器

2024-09-10

S12微处理器(共7篇)

S12微处理器 篇1

1 人机界面概述

人机界面(The Human-Machine Interface,HMI)即用户界面(User Interface,简称UI),是设备与人之间通信交流的窗口[1]。通过该界面操作人员可实现与设备的交互作用。

一般人机界面系统由硬件和软件两部分组成,硬件部分主要包括微处理器单元、显示单元、输入单元、通信单元以及存贮单元等。其中微处理器是人机界面中最重要的元件,它的性能直接决定用户界面产品的性能。

根据人机界面产品等级的不同,一般微处理器可选用8位、16位、32位的处理器。而软件通常有两种,一种为使用成熟组态软件二次开发的用户界面,该类型人机界面产品功能强大,界面美观,但对微处理器的要求较高,且成本较高;另外一种为普通界面,可完成基本的操作、数据显示以及存储功能,该软件成本较低,对微处理器的要求也不高[2]。

2 微处理器MC9S12X

微处理器(MCU)广泛应用于工业控制领域中,将它与液晶屏组合,可设计出功能较强的人机界面。MC9S12X是一款以16位HCS12X为内核的微控制器(MCU)。它包括256kbyte的Flash,4 kbyte的E2PROM,4个异步串行通讯接口(Asynchronous Serial Communications Interface,SCI),8通道增强型捕获定时器(ECT),3个串行外围接口(Serial Peripheral Interface,SPI),具体有8通道的10位精度的模数转换器(ADC),3个CAN2.0A/B协议的MSCAN通讯口,如果需要外扩总线,它还具有独立的23位地址总线和16位数据总线。其内置的锁相环电路可实现低功耗晶振,可根据系统的具体要求做出适当的调整[3]。

3 液晶模块介绍

液晶显示器(Liquid Crystal Display,LCD)[4],具有体积小、功耗小、清晰度高、无闪烁、重量轻、受外界磁场干扰小、价格低廉等优点,已在许多领域得以广泛使用;虽然发光二级管(LED)具有亮度高、字体醒目、电压低的特点,但其显示的信息量少,一般只用于显示数据量不大的场合。目前,在一些专业领域上,LCD已逐渐取代LED[5]。

在用户界面系统中,应该具有友好的界面菜单,也就是用户操作将更加简单明了;既能显示汉字,还能显示图形,并具有英文或数字的输入功能。本文采用LM1095R,它为192×128点阵中文/图形液晶显示模块,内置RA8803控制器。该液晶屏不仅可以显示单一的文本、图形,而且可以实现双图层的合成显示,此外还能产生四阶灰度的效果,并且在文本模式下能够实现大小字体的混编(最大字体为64×64);在连续输入资料时,可自动设定行距;画面美观,节省了用户的开发时间[5]。该液晶屏的特点为:(1)采用单电源供电,内置升压电路;(2)具有高对比度,FSTN型LCD屏;(3)白色LED背光;(4)内嵌简体中文字库(7602个汉字);(5)双图层内存(2×9.6K显示存储器)。

4 LM1095R与MC9S12X的硬件连接

如图1所示为微处理器MC9S12X与液晶模块LM1095R的接口电路图。

图1中,DB0-DB7为数据总线,用来传输数据或指令。/CS为片选端口,/RD为读控制端口,/WR为写控制端口。该系统的具体工作流程为:当/RD为高电平且/WR与/CS同时为低电平时,表示微处理器正向液晶模块写数据;当/WR为高电平且/RD=0与/CS同时为低电平时,表示微处理器正从液晶模块读数据。RS是传输数据或者传输指令的控制端口,当RS为高电平时,表示微处理器通过DB0-DB7传输数据;当RS为低电平时,表示微处理器通过DB0-DB7发出指令。Vout是液晶模块调压器的输出电压,V0是液晶模块的对比度参数输入,通过设置Vout和V0来控制液晶的对比度;BLA引脚为液晶模块的背光引脚。

5 液晶显示的软件编写

如图2所示为液晶显示屏的读写时序图。

按照时序图编写写数据函数(总线频率40MHz):

void write_data(unsigned char wrdata)

按照时序图编写写寄存器函数(总线频率40MHz):

void write_register(unsigned char address,unsigned char wrdata)

通过上面两个函数就可以对液晶进行进一步的软件编写。液晶显示的初始化程序如下:

该设计将使液晶模块能实时显示微处理器所接收到的数据,以及需要处理的数据值,并且具有翻行与翻页功能,以方便用户查看。该人机界面的另一功能为波形显示,即可将存储于存储器的数据以波形的形式显示于液晶屏上,方便使用者直观地观察数据的变化趋势。

6 输入模块设计

为了满足人机界面的输入要求,本文设计的人机界面还设计了输入模块,即通过8个按键来控制液晶屏的数据显示和参数的修改。在微处理器中采用具有中断功能的H端口来响应按键的输入,即一旦有按键按下,就会产生一个下降沿,微处理器在接收到这个下降沿后,就会触发一次中断,程序会自动转到键盘的中断服务子程序,执行中断任务。如果没有按键按下,微处理器的H端口将读到高电平;即触发任何按键都将使输入变为低电平,从而触发微处理器发生中断。

输入系统的部分程序为:

函数initial_button()将H端口设置为输入,下降沿触发微处理器中断。

在中断函数中,首先需要进行防抖动处理,以提高系统的可靠性,之后再对按键进行解释,以确定是哪个按键闭合,最后将按键标志key_flag置“1”,退出中断,回到主程序。

主程序中,循环读取key_flag,当key_flag=1时进入按键子程序。

设计按键模块的难点在于如何区分同一个按键在不同的情况下具有的不同功能,即同一按键功能的复用。本系统通过设置一个标志,即modify_flag,将按键的功能分为两类,一类是普通模式,一类是修改模式,这样只用7个按键就可以完成大部分系统的功能。

7 结束语

本文给出了以微处理器MC9S12X为控制器的人机界面系统设计过程,详细介绍了MC9S12X与液晶显示屏之间的硬件设计以及软件程序,并给出了输入模块的设计思路和方法。本文中的程序均为函数形式,采用C语言编写,具有通用性和可移植性。

摘要:介绍了人机界面的特点,提出了基于微处理器MC9S12X的人机界面设计方案,并给出了该方案的电路硬件设计以及部分软件程序。

关键词:微处理器,液晶屏,MC9S12X,人机界面

参考文献

[1]王建国.仪器产品的人机硬界面关系设计[J].机械工程与自动化,2004,(5):60-63.

[2]韦永办.图形模块的菜单方式人机交互界面[J].单片机与嵌入式系统应用,2002(11):32-33.

[3]常越.M68HC08单片机原理及C语言开发实例[M].北京:北京航空航天大学出版社,2005.

[4]钱玲莉,陈争,李业军.液晶与液晶显示器[J].现代电视技术,2005,(9):96-97.

[5]张文志.当前世界液晶材料的进展[J].科技信息,2007,(19):46-47.

S12微处理器 篇2

智能车辆, 是一个集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统, 它集中地运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术, 是典型的高新技术综合体.它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。智能车辆致力于提高汽车的安全性、舒适性和提供优良的人车互动界面, 是目前各国重点发展的智能交通系统中一个重要组成部分, 也是世界车辆工程领域研究的热点和汽车工业增长的新动力。随着科学技术的发展, 特别是计算机技术、信息技术、人工智能、电子技术的突飞猛进, 智能车辆技术有了实现的技术基础。目前智能车辆技术在轿车和重型汽车上主要应用于碰撞预警系统、防撞及辅助驾驶系统、智能速度适应、自动操作等, 其在军事上的应用更加广泛和重要。车辆智能化是汽车工业今后的发展趋势, 也是人们对安全性要求越来越高未来汽车的发展方向。随着计算机技术和信息技术为代表的高新技术的发展, 人工神经网络技术、模糊控制技术、神经模糊技术、虚拟实现等新技术的出现, 智能车辆技术的研究将会有突破性的进展。智能车辆系统的实用化是是智能车辆发展的前进方向, 适应性强、环境适应性好的智能车辆将是研究的重点。

2 智能车系统硬件设计方案

智能车的硬件设计是整个系统设计的基础, 只有在系统硬件可行、稳定、可靠的前提下, 其它控制方案、软件设计才得以继续, 所以这部分对于整个系统来说十分重要。本设计硬件部分主要由队友张平刚完成, 它主要包括单片机 (主控) 、CCD摄像头 (图像采集) 、旋转编码器 (速度检测) 、SD卡 (大量数据保存) 、无线抄表 (数据的无线收发) 、直流电机 (速度控制) 、舵机 (方向控制) 、电源 (5V/6v/7v/3.3v/9v/12v/) 、车模、驱动芯片33886、MOSFET管等组成。其智能车整体结构图如图1所示。

3 智能车系统软件设计方案

硬件是基础, 软件是灵魂。有了稳定的硬件后, 接下来就是程序的编写了。此部分主要包括系统初始化、图像采集, 路径分析, 控制策略, 调试软件五部分, 图2为系统软件的主流程图。

4 系统初始化

系统初始化工作主要完成系统时钟、全局变量初始值的设置、小车的初始状态 (如初始速度、初始转角等) 的设置、SD卡初始化、PWM周期设置、A/D时钟设置、SCI串口通信速率设置、SPI初始化、小车模式设置等[3,4,5,6]。只有进行了正确的初始化工作, 才能使系统正常工作, 并发挥其最大的性能, 才能使各模块之间协调工作。①系统时钟的初始化:系统时钟初始化直接关系到9S12XS128工作的总线频率, 对于整个系统的性能来说尤为重要。而且对于摄像头来说, 要采集到足够的赛道信息并处理大量的图像数据就必须使单片机工作在一个较高的频率下。对于9S12XS128来说, 外部晶振为16MHz, 经过单片机的内部锁相环倍频电路, 可以使内部总线频率达到40MHz, 基本上可以满足摄像头的图像采集, 并且可以作简单的图像数据处理和算法分析, 以得到正确的赛道信息, 并最终控制小车的运行。但实际上内部总线频率为40MHz也是很难对摄像头的图像进行复杂的处理, 并作出更为合理的决策, 因此本设计在确保系统稳定的前提下将9S12XS128的总线频率超频至80MHz。②PWM的初始化PWM通道计数寄存器PWMCNTX, 写入任何值都将使PWMCNTX清0, 也就是说PWMCNTX不能被置0以外的数值, 图3表示PWM波产生的过程。

PWM周期:T=通道时钟周期× (PWMPERx+1) (1)

脉宽左对齐, 起始高电平输出, 占空比计算公式:

占空比undefined (2)

由于总线时钟在调试过程中经常会人为地进行调整, 而如果我们每次进行调整都将再次对每个PWM寄存器进行分频, 预分频的调整, 以达到预期的输出周期 (舵机100Hz左右, 电机10KHz左右) , 这样给调试带来了不便, 故部分程序编写进行了相应的处理:

4.1PWM.h头文件中进行如下宏定义:

4.2 在PWM.c源文件中进行如下处理:

经过以上处理后, 如果总线频率Bus_Freq改变的话, 我只要简单计算新Bus_Freq经PWM_PRCLK (此处为4分频) 分频后的频率, 并将CH_A_FREQ声明为新值, 其它不作改变。如:Bus_Freq开始为32000000经4分频 (PWM_PRCLK=0x22) 得时钟A频率为8 000000Hz, 因此将CH_A_FREQ声明为8000000, 经公式 (4) 计算得CH_SA_DIV=4。若Bus_Freq改为80000000Hz, 则4分频后时钟A频率20000000Hz, 则将CH_A_FREQ声明为20000000则通过公式 (3) 计算得CH_SA_DIV=10。之所以能这样处理的原因是PWMSCLA、PWMSCLB能够进行1×2, 2×2直到255×2的连续分频, 这样CH_SA_DIV可为2~512中任意一个偶数, 而根据公式 (3) 处理恰好可得到2~512中的偶数之一。

undefined (3)

同时本程序编写可很方便地对舵机工作频率进行软调:

JHJdefine ServoFreq 100 //表示舵机工作频率为100Hz。根据公式:

undefined (4)

计算得PWMPER45=10000, 而对应舵机的PWM通道 (本设计中舵机用的是PWM45) 的PWM周期根据公式 (1) 得:

undefined

即对应舵机频率为100Hz。同时其占空比可根据公式 (2) 求取。由于PWPER45=10000, 固PWMDTY45的值变化范围为1-10000, 即对应的占空比可调值有10000个。实际中因舵机左右转角位置限制使其可变的点数大概在600个左右。同理直流电机可调范围根据公式可得PWMPER23=200;即:

占空比undefined

所以PWMDTY23变化范围为0~201。

整体来说, 此部分初始化相对复杂, 其范围也要求较为严格, 并且直接关系到舵机、直流电机的响应时间和稳定性。在实际应用中, 如果对应舵机的PWM通道的频率设置过高 (高于200Hz) , 可以很明显听到舵机发出断续声响。

5 键盘初始化

本设计中键盘只是用来对小车的运行模式进行选择, 相当于拨码开关。由于比赛前, 赛道形状是未知的, 而且比赛时候又不能重新修改程序, 为了在小车出发前, 作最后参数调整, 非常有必要设置拨码开关, 能够根据赛道的实际情况和小车运行情况作出合理的调整, 从而取得更好的成绩。本次设置的按键只有两个, 与单片机的PA2与PA3两个I/O相连。由于此款单片机的PA口本身具有上拉和下拉的功能, 通过上拉使能寄存器PUCR_PUPAE设置对应的I/O口是否具有上拉功能。在此说明一下, 有些单片机的端口内部具有上拉电阻, 它和外部上拉电阻原理一样, 所实现的功能也是一样的。当端口上拉电阻使能时, 若端口方向寄存器 (此处为DDRA) 置为输出则不影响引脚电平;若端口方向寄存器置为输入, 输入为低时, 单片机的此I/O口可向外提供一定的电流 (此款单片机最大为20mA) 。有些I/O口不具内部上拉电阻, 那么此I/O口对应的引脚就相当于一个三极管的集电极。

6 图像采集

按一定的分辨率, 以隔行扫描的方式采样图像上的点, 当扫描到某点时, 就通过图像传感芯片将该点处图像的灰度转换成与灰度成一一对应关系的电压值, 然后将此电压值通过视频信号端输出。摄像头连续地扫描图像上的一行, 就输出一段连续的电压视频信号, 该电压信号的高低起伏正反映了该行图像的灰度变化情况。对于PAL制式, 摄像头每秒扫描25幅图像, 每幅又分奇、偶两场, 先奇场后偶场, 故每秒扫描50场图像。奇场时只扫描图像中的奇数行, 偶场时则只扫描偶数行。可见, 每场信号持续时间为20ms。图像信号组成如图4。

当扫描完一行, 视频信号端就输出一低于最低视频信号电压的电平, 这样相当于, 紧接着每行图像对应的电压信号之后会有一个电压“凹槽”, 此“凹槽”叫做行同步脉冲, 它是扫描换行的标志。然后, 跳过一行 (因为摄像头是隔行扫描的方式) , 开始扫描新的一行, 如此下去, 直到扫描完该场的视频信号, 接着就会出现一段场消隐区。此区中有若干个复合消隐脉冲 (简称消隐脉冲) , 在这些消隐脉冲中, 有个脉冲它远宽于 (即持续时间长于) 其他的消隐脉冲, 该消隐脉冲又称为场同步脉冲, 它是扫描换场的标志。场同步脉冲标志着新的一场的到来。不过, 场消隐区恰好跨在上一场的结尾部分和下一场的开始部分, 得等场消隐区过去, 下一场的视频信号才真正到来。

视频信号分离:由于摄像头输出的信号中含有消隐信号 (包括行消隐和场消隐) , 这对于赛道信息提取是没有用的, 因而需要避免将这部分信号采到单片机中。这就需要有视频分离芯片对视频信号进行分离, 将同步信号提取出来, 供单片机判断当前是否是有效的视频信号以及是第几场第几行的信号。

本设计中采用的是行同步信号和奇偶换场信号作为判断标志。其中奇偶换场信号中奇场时该引脚输出为高电平, 偶场时该引脚输出为低电平。由于在每一帧的图像中, 奇偶两场的信号差别不大, 为了节省空间, 提高采集数据的实时性, 我们选择每一帧图像仅采偶场, 则判断奇偶换场信号的下降沿。

总结

(1) 在赛车的机械结构上作优化。主要包括主销后倾角、主销内倾角、前轮外倾角、前轮前束、重心的位置、地盘离地间隙、后轮轮距以及后悬挂纵向减震弹簧的预紧力等。

(2) 舵机的机械调整。这一内容包括对舵机输出角度的机械放大、舵机反装等, 其中心目的是提高舵机的反应速度。

(3) 增强驱动电机的加减速性能。驱动电机的加减速性能首先与驱动芯片的性能密切相关。很多队伍提出了多片MC33886并联使用的方法, 也有的队干脆自己设计驱动芯片, 这要求在相关方面具有比较强的实力。其次是软件方面, 如果使用PID算法控制电机, 则PID参数对加、减速性能的影响也是很大的。但无论如何, 优化参数是不可或缺的一步。

(4) 在舵机控制算法上优化, 使之过弯道走内弯、S型曲线直接冲过, 其中心目的就是使赛车少走弯道, 缩短行驶距离。在实验中曾发现, 如果不进行控制算法的优化, 单纯增加赛车的直线速度并不总是能缩短单圈的时间, 因为速度快到一定程度后, 赛车在过弯时将发生侧滑, 赛车走过的距离增加了, 抵消了速度增加带来的优势。

摘要:以“飞思卡尔”杯全国大学生智能汽车比赛为背景, 制作一个在专门设计的跑道上能自主识别道路行驶的智能车, 能在尽可能短时间内跑完全程, 不脱离跑道并遵守大赛的一系列规则。以9S12XS128为控制核心主要完成工作如下:①摄像头获得的图像信息的数据采集, 并完成图像的滤波去噪, 提高采集的图像数据准确性。②采用PID算法对智能车的舵机进行控制, 提高了舵机的相应速度, 减少了对舵机控制的静态误差。③采用了模糊控制法, 对智能车的电机部分进行控制, 通过不断调试完成模糊规则库的建立。④编写了无线传输模块的软件程序, 可以对智能车行驶过程中的状态进行采集并传输至上位机, 方便了智能车的调试。通过实验验证, 并参加实际大赛, 本设计中的所采用的方法效果较好。

S12微处理器 篇3

目前,关于直接插补算法的研究多集中在B样条曲线曲面这样的自由曲线曲面上面(如参考文献[4,5])。但由于一般的B样条曲线曲面不能统一地描述标准的解析形体(圆锥曲线、旋转面等),所以现在有学者研究基于NURBS(非均匀有理B样条)曲线曲面的插补算法[2]。NURBS曲线曲面可以用一个统一的表达式描述自由曲线曲面和标准的解析形体(圆锥曲线、旋转面等)。NURBS是B样条的扩展,NURBS包含B样条的所有内容。这些关于NURBS曲线插补的研究大部分还停留在单段的研究上,没有突破传统数控技术的范围。本文实现了一个基于完整的三次NURBS曲线、曲面插补算法,并将算法移植到S12单片机上进行测试。

1 NURBS概述

样条函数的概念首先是由舍恩伯格(Schoenberg)在40年代提出来的,当时并未引起重视,直到70年代,人们才发现了它的价值。1972年德布尔(de Boor)和考克斯(Cox)给出了B样条的递推定义和一套标准算法[6]。

1974年美国通用汽车公司的戈登(Gordon)和里森费尔德(Riesenfeld)将B样条理论应用于形状描述,提出了B样条曲线曲面。它几乎继承了贝塞尔方法的一切优点,克服了贝塞尔方法的缺点,较成功地解决了局部控制问题,又轻而易举地在参数连续性基础上解决了连接问题[7]。

B样条方法较成功地解决了自由型曲线曲面形状地描述问题。然而B样条方法不能准确地表示圆锥截线及初等解析曲面,都只能给出近似表示,不能适应大多数机械产品的要求。80年代后期,人们希望找到一种既能描述复杂曲线曲面又能描述二次曲线和二次曲面的统一的数学方法,在这种情况下,非均匀有理B样条(NURBS,Non-Uniform Rational B-Spline)方法应运而生。70年代初,里森费尔德(Riesenfeld)等人研究了非均匀B样条,1975年,美国锡拉丘斯(Syracuse)大学的佛斯普里尔Versprille完成了有关有理B样条的博士论文。20世纪80年代后期,美国的皮格尔(Piegl)和Tiller将有理B样条发展成为非均匀有理B样条(NURBS)方法。其它国内外的学者也对NURBS方法进行了深入的研究。

2 NURBS相关理论

目前NURBS方法已成为用于曲线曲面描述的最广为流行的技术。非有理与有理贝塞尔和非有理B样条曲线曲面都被统一在NURBS标准形式之中,因而可以用统一的数据库。国际标准组织(ISO)继美国的PDES标准之后,于1991年颁布了关于工业产品数据交换的STEP国际标准,把NURBS作为定义工业产品几何形状的唯一数学方法。当前在数控加工领域,FANUC、SIEMENS等高档数控系统已能直接进行NURBS插补,UG等高档CAD/CAM软件也能输出NURBS插补代码,NURBS插补方法将逐渐在CNC中占重要地位。

在需要加工的产品中,有很多具有自由曲线和曲面形状,而传统的插补算法对此有时显得无能为力,特别是针对复杂的、需要进行高精度和高速度加工的自由曲线曲面的时候[1]。而基于B样条或者NURBS曲线曲面的直接插补算法无疑是解决这一问题的有效途径。1991年,STEP(Standard for the Exchange of Product Model Data,产品模型数据交换标准)把NURBS作为定义工业产品几何形体的标准数学表达方法[5]。而当前在数控加工领域,FANUC、SIEMENS等高档数控系统已能直接进行NURBS插补,UG等高档CAD/CAM软件也能输出NURBS插补代码,NURBS插补方法将逐渐在CNC中占重要地位。

由de Boor和Cox分别导出的B样条递推定义,B样条曲线可表示为[6]:

Vi(i=0,1,…,)是控制顶点,Bi,k(u)称为B样条基函数,由下面的递推公式定义:

ui称为节点,当ui+1-ui=常数时,则表示均匀B样条函数,反之称为非均匀B样条函数。如果在公式(1)中给控制顶点乘以相应的权因子,则称之为有理B样条曲线,如果节点也是不均匀的,那就演化为NURBS曲线了。

B样条曲面则定义为:

其中:其中Vi,j为控制顶点,Bi,k(u)和Bi,k(ω)分别为k次和l次B样条基函数,u和ω是曲面的两个参数,ui和ωj分别是两个方向的节点。

NURBS曲线的定义如下:

其中Vi为控制顶点,Wi为权因子,Bi,k(u)为k次B样条基函数。NURBS曲面则由下式定义:

其中Vi,j为控制顶点矢量,Wi.j为权因子,Bi,k(u)和Bi,j(ω)分别为沿u向k次和沿ω向l次B样条基函数。

3 NURBS曲线曲面插补算法

插补算法的实质是点的密化,对于NURBS曲线则转化为求解曲线上的点。NURBS曲线是参数曲线,点的密化需要参数的密化。参数密化的方法有:1)等距法,也就是说参数是均匀增加的;2)等步长法,就是保证每次插补的步长基本恒定,通常用泰勒展开式实现,为了保证步长的稳定性,还可以进行校正;3)自适应法,随插补曲线的曲率或者挠率的变化自适应的改变进给步长以保证加工精度。文献[8,9]采用了等步长法,并采用了一定的措施进行校正。文献[10]则采用了自适应方法。

对于曲面插补,首先要将曲面离散成曲线,如图1所示。常用的将曲面离散成曲线的方法有以下两种:一是用一组平面切割曲面以获得一组NURSB曲线,然后按曲线进行插补。二是首先将曲面的两个参数中的一个进行离散,获得一系列的值,将这些值代入曲面公式可以获得一系列的NURBS曲线,最后可按这些曲线进行插补。文献[11,12]采用了第一种方法。在第二种方法中,首先要对两个参数中的一个进行密化以获得一系列的值,密化的方法有当然可以采用前面的密化方法,但在这里我们采用一种所谓的残留误差控制法来控制刀径之间的残留误差。为了提高插补的速度和平稳性,按照这些曲线进行插补时最好采用“之”形的路线进行,我们的研究采用一种方法较好的解决了这个问题。

获得了两个参数之后,就可以求出曲线相应的点了(型值点),求的时候可以首先将NURBS曲线曲面用矩阵的方法来表示,然后进行求解。这种方法可以将一部分计算放在插补前集中进行以提高插补的实时性。也可以用de Boor方法来进行求解,这是一种递推方法,适宜于在计算机中使用。在算法实现中我们采用了de Boor方法。这种方法的好处是可以在求型值点的时候将该点的一阶二阶导矢同时求出,加快计算速度,同时我们也利用了NURSB的局部性质来加快计算速度,提高插补的实时性。根据图1可以根据两个参数求出该点的型值点、两个参数方向的切矢、法矢等值,有了这些值就可以根据坐标变换公式求出相应的坐标轴的相对运动,实现刀具的移动,具体方法可以参考文献[4]。

4 测试

插补算法最终是要在控制器上运行的。目前有很多控制器采用单片机进行实现,尤其是开放式数控系统中,控制器多采用PC机、DSP和单片机来实现。在将插补算法用C语言实现后,需要测试算法及代码在单片机上的运行情况。这里运行环境采用了MC9S12DG128微处理器。

本实验系统采用的核心版是MC9S12DG128微处理器,它是Freescale公司MC9S12系列16位单片机中的一种,其内部结构主要有单片机基本部分和CAN功能块部分组成,基本结构包括:中央处理器单元S12(CPU)、2个异步串行通信口SCI、2个同步串行通信口SPI,8通道输入捕捉/输出比较定时器,1个8通道脉宽调制模块以及49个独立数字I/O口(其中20个具有外部中断及唤醒功能),在片内还拥有128KB的Flash ROM,8KB的RAM和2KB的EEPROM,CAN功能块包括两个兼容CAN2.0A/B协议的msCAN控制器组成,这些丰富的内部资源和外部接口资源可以满足ECU对各种数据的处理、CAN网络数据的发送和接收要求,芯片集成了两个MSCAN12模块,能够实现高低速CAN网络的网关节点功能。

运行结果通过串口传到PC机的超级终端中显示,如图2所示。算法可以实现数控系统五个轴的运动计算,为了简化程序,我们这里只输出了两个轴的值。要完整的测试该算法,最好是驱动一个五轴运动平台。但是由于条件的限制,我们只能从运算的数据进行分析测试的结果。

5 结束语

本文提出的基于NURBS曲面的插补算法是整个NURBS曲面的,有别于通常所讨论的一个粗插补段的基于NURBS曲线的精插补的算法。本文所提出的插补算法是基于开放式数控系统。可以在上位机(PC机)上面设计NURBS曲面,然后将该曲面参数传递给下位机进行插补运算,实现曲面的加工。从上面可以看出,算法可以给出正确的结果。但作为一个数控系统,需要做的任务还很多,要对算法及程序代码的稳健性进行测试,对插补的实时性进行测试,其次将控制器和多轴运动平台结合,使之成为一个完整的系统。

摘要:传统的基于直线和圆弧的插补算法已经不能满足数控技术发展的需要,采用基于自由曲线的插补算法是大势所趋。目前关于NURBS曲线插补的研究大部分还停留在单段的研究上,没有突破传统数控技术的范围。在目前开放式数控技术日益重要的情况下,提出了基于整条曲线或者整个曲面的插补算法,并将该算法应用在S12单片机上进行测试,测试结果显示能够满足要求。

关键词:插补算法,NURBS,S12微处理器

参考文献

[1]陈伟,殷苏民.五轴联动数控激光加工系统的空间曲线B样条插补算法研究[J].机床与液压,2004,1:53-55.

[2]李杰,马跃.数控系统中NURBS插补技术[J].微计算机信息,2007,7(1):210-212.

[3]吴光琳,林建平,李从心,等.B样条曲线的快速实时插补算法[J].模具工业,2000,10:14-16.

[4]周济,周艳红.数控加工技术[M].北京:国防工业出版社,2002.

[5]TSENG Pai-Chung,HON Jung-Yong.The Design of Free Surface Interpolator for CNC Machining[J].JSME International Journal Series C,2004,47(1):421-428.

[6]朱心雄.自由曲线曲面造型技术[M].北京:科学出版社,2000.

[7]赵巍.数控系统的插补算法及加减速控制方法研究[D].天津:天津大学,2004:4-5.

[8]Tsai M C,Cheng C W,Cheng M Y.A Real-Time NURBS Surface Interpolator for Precision Three-Axis CNC Machining[J].Interna-tional Journal of Machine Tools and Manufacture,2003,43(12):1217-1227.

[9]Yeh S S,Hsu P L.The Speed-Controlled Interpolator for Machining Parametric Curves[J].Computer-Aided Design,1999,(31):349-357.

[10]游有鹏,王珉,朱剑英.参数曲线的自适应插补算法[J].南京航空航天大学学报,2000,12:667-671.

[11]Lartigue C,Thiebaut F,Maekawa T.CNC Tool Ppath in Terms of B-spline Curves[J].Computer-Aided Design,1999,31(5):307-319.

S12微处理器 篇4

关键词:MC9S12X系统,铁电存储器,存储空间

0 引言

MC9S12X是一款以16位HCS12X为内核微控制器(MCU),包括256 kB的Flash,16 kB的RAM,4 kB的EEPROM,3个串行外围接口(SPI),4个异步串行通信接口(SCI)8通道捕获定时器(ECT),2个8通道、10位精度的模数转换器(ADC),3个兼容CAN 2.0A/B协议的MSCAN通信口,119个可复用的普通I/O端口。在外扩总线的时候,有独立的23位地址总线和16位数据总线,可以工作在8位数据总线模式下。

铁电存储器FRAM具有接近于无限次的高速读写功能,在失电的工作环境中,仍能把数据完整地保存起来。故可以广泛地应用在需要保存可靠数据的工业中,如记录生产设备的历史数据、故障显示和生产工艺数据[1]。

在采用以MC9S12X为核心的人机界面系统中,当励磁控制系统发生故障时,需要将故障电压等电参量显示在液晶屏上,并且将其存储到非易失性存储器(FRAM)上,同时通过对外通信端口将故障数据传输到上位机和其他网络上,这些数据需要不断地读写并且要求系统失电后能够将其保存下来。根据以上要求, 本设计采用铁电存储器FM25L256来扩展MC9S12X的外接存储空间。

1 铁电存储器

铁电存储器(FRAM)是利用铁电晶体的铁电效应实现数据存储的。铁电效应是指在铁电晶体上施加一定的电场时,晶体中心原子在电场的作用下运动,并达到一种稳定状态;当电场从晶体移走后,中心原子会保持在原来的位置。这是由于晶体的中间层是一个高能阶,中心原子在没有获得外部能量时不能越过高能阶到达另一稳定位置,因此FRAM保持数据不需要电压,也不需要像DRAM一样周期性刷新。由于铁电效应是铁电晶体所固有的一种偏振极化特性,与电磁作用无关,所以FRAM存储器的内容不会受到外界条件诸如磁场因素的影响,能够同普通ROM存储器一样使用,具有非易失性的存储特性。

FM25L256具有如下特性:

(1)256 kbit位的非易失性铁电随机存储器:其结构容量为32 768×8 bit,一万亿次的读写次数,掉电后数据可以保持10年,写数据无延时,先进的高可靠性铁电制造工艺。

(2) 高速串口(SPI)串行协议:最大达到25 MHz的总线速度,硬件上直接替代EEPROM,支持的模式为0&3模式(CPOL、CPHA=0,1)。

(3)完善的写保护:硬件写保护和软件写保护。

(4)低功耗操作:其工作电压为2.7 V~3.6 V。

(5)工业标准:工业温度为0℃~70℃ ,8脚SOCI封装。

铁电存储器可以像RAM一样以很高的速度进行读写操作,但其不是用电荷来存储数据,所以在写入数据后不需要等待,故没有写操作延时,同时又像非易失性存储器一样提供非易失性的存储功能,能将数据保存长达10年以上的时间,提高了系统的可靠性,支持高达百亿次的读写操作[2]。

2 FM25L256与MC9S12X的硬件连接

图1为MC9S12X芯片与铁电存储器FM25L256的接线原理图。

单片机MC9S12X通过串口模块(SPI)与铁电存储器FM25L256相互通信。图1中,MC9S12X的串口时钟引脚(SCK)向FM25L256提供串行时钟,从而可以控制通信速度和数据传输;主机的undefined脚负责向FM25L256提供片选信号,为低电平有效的方式;由主机的MOSI脚将主机的数据传入从机,从机FM25L256的接口为SI脚;主机的MISO脚负责接收FM25L256通过SO脚传输上来的数据。

主机(单片机MC9S12X)中的8位数据寄存器和从机(FM25L256)中的8位数据寄存器通过MOSI和MISO组成了一个16位的移位寄存器。在相互进行数据通信的过程中,数据将以串行的方式同时输入和输出。通信的速度由主机的串行时钟同步信号控制,数据在主机和从机之间通过两条数据线循环移位,主机数据寄存器中的数据传输到从机的数据寄存器,而FM25L256的数据寄存器中的数据传输到单片机MC9S12X的数据寄存器。串口通信模块就是用这种方式实现了主机和从机之间的数据通信。

铁电存储器FM25L256在进行读写操作前,需要向其传输一个操作代码,以控制铁电存储器FM25L256进行相应的操作。在向FM25L256传输操作代码时,需要注意下面几点:①必须在FM25L256通电10 ms后才可以向其传输操作代码;②要先使FM25L256处于写使能状态(即状态寄存器的WEL位置高)才能对FM25L256进行写操作,其方法是在向FM25L256进行写操作前向其传输写使能操作代码0x06,使其写使能。每次写操作完成后,FM25L256将进入写保护状态,所以在进行写操作之前必须使FM25L256重新写使能。

3 软件设计

本文采用中断的方式设计MC9S12X与铁电存储器FM25L256之间的串口通信,通过中断程序来完成数据的发送、接收和校验,用C语言来编写接口程序,采用CRC校验方式来保障数据通信的传输正确性。为了保证铁电存储器FM25L256的状态寄存器在写入操作代码时是准确无误的,在向FM25L256写入操作代码后,设计程序读出目标寄存器的状态字,来校验是否将操作代码写入了FM25L256的寄存器,如出现错误则重新写入操作代码。

系统处于工作状态时,在向FM25L256传输数据后,或从FM25L256存储空间读出数据后,设计程序对FM25L256重读一次并对两次读入的数据对比校验,如出现错误则重写或重读。

铁电存储器FM25L256具有2种工作模式,即0和3模式。可以通过控制它的CPOL位和CPHA位来选用符合自己要求的工作模式。

本文中的通信模式采用模式3,下面列出部分通讯程序:

以上程序主要完成对铁电存储芯片FM25L256的串口通信模块初始化和主机对FM25L256读操作的功能,其中读操作的程序写在中断服务程序中。读操作主要是主机MC9S12X读出存储在FM25L256中的数据,写操作则是把相应的数据传输到FM25L256中指定位置进行存储[3]。

图2为利用数字录波器对铁电存储器进行读操作后获得的图像。

在片选信号有效的情况下(低电平),向FM25L256写入读操作数0x03,然后向其写入相应的数据地址,通过主机发出时钟脉冲,则与数据地址对应的存储在FM25L256中的数据会随着时钟脉冲逐个读出。

4 结束语

本文以单片机MC9S12X外扩存储器为基础,详细讨论了MC9S12X与铁电存储器FM25L256之间串口通信连接的硬件设计以及相关硬件配置。并且简要介绍了FM25L256与MC9S12X的接口程序设计。文中的接口程序为函数形式,采用C语言编写,具有通用性和可移植性。

参考文献

[1]孙树印.铁电存储器原理及应用比较[J].单片机与嵌入式系统应用,2004(9):15-18.

[2]郑春华.铁电存储器FRAM及其与M CU的接口技术[J].单片机与嵌入式系统应用,2002(1):44-46.

S12微处理器 篇5

关键词:MC9S12X,CAN通讯

引言

MC9S12X单片机具有丰富的I/O模块和工业控制专用的通信模块,采用5V供电,总线速度可达40MHz,非常适合应用在汽车业中。在汽车级的控制器中,CAN总线是汽车各个控制单元之间联系的纽带,是实现数据交互的媒介,它的可靠运行是汽车正常行驶的前提。在选择控制芯片时,芯片具有的CAN模块个数是一个重要的考虑因素,MC9S12X芯片带有5个CAN模块,满足多路CAN通讯的需求。

CAN通讯的实现是建立在软硬件基础上,硬件电路实现电气连接,软件部分驱动硬件工作,二者缺一不可。本文论述CAN通讯的软件实现,建立在具有CAN功能的MC9S12X芯片和CAN收发器这两个硬件基础,实现MC9S12X与CAN总线的通信,完成数据交互。

1、软件设计方案

软件设计主要是数据结构的设计和函数接口设计这两个方面。

CAN通讯的实现需要三个函数完成:初始化函数、发送函数和接收函数。

程序代码用C语言编写,使用的CAN控制器支持CAN2.0B通讯协议,可以实现标准帧和扩展帧两种类型的数据传输。

1.1 数据结构设计

(1)初始化数据结构设计:CAN口初始化数据结构设计

其中BaudRateKb指CAN的工作频率,以Kb/S为单位,CanNum指CAN口编号。

(2) CAN报文数据结构设计:发送/收报文数据类型的设计

1.2 初始化函数设计

初始化函数接口:

void Can_Init(const Can_ConfigType*Config);

该函数包含一个参数*Config结构体指针。。结构体包含两个成员:BaudRateKb和CanNum。

初始化函数用来完成CAN模块的选择(即指定由哪一个CAN模块实现报文的发送或者接收),设置CAN通讯的波特率,以及设置模块的时钟源。MC9S12X的CAN有两种时钟源可选择,一个是板级晶振时钟,另一个是总线时钟,由于CAN通讯对总线传输速率的稳定性要求较高,所以在实际应用中,选择晶振时钟作为时钟源。

初始化函数流程如下图:

1.3 发送函数设计

发送函数接口:

Can_RetumType Can_Write(uint8_T num,const CAN_DATATYPE*msg);

该函数包含2个参数,其中一个是CAN模块的编号,另一个是指向CAN报文的数据类型的一个指针。

参数num是用来发送CAN报文的CAN模块号。。*msg指针指向CAN报文数据结构,该结构包含5个成员。成员如下所述:

Extended参数是用来区分ID类型,该参数取零值,表示ID是11位的;该参数取1,表示的是扩展ID (29位)。

Length参数用来设置发送数据的字节数,取值范围0-8。

Remote参数用设置报文是远程帧还是数据帧。

ID参数用来设置ID标识符。

Data[8]是存放数据的数组。

该函数的返回值是一个Can_ReturnType类型的值(0或1),表示总线正常或者不正常。

CAN发送函数的功能是实现报文发送,包括设置报文的类型(即数据帧或者远程请求帧等),ID类型(标准帧或者扩展帧),发送数据的长度(以字节为单位),以及发送的数据。

发送函数流程图如下:

1.4 接收函数设计

接收函数接口:

Can RetumType Can_Read(uint8_T num,CAN_DATAT-YPE*msg);

该函数包含2个参数,其中一个是CAN模块的编号,另一个是CAN报文数据类型的一个指针。

该函数的返回值是一个Can_RetumType类型的值(0或1),表示接收是否完成。

CAN接收函数的功能是接收其他控制设备发送到CAN总线上的数据。

接收函数流程图如下:

2、软件实现比较

主要针对接收功能,发送数据时,两者的差异不明显。接收数据时,两者的差异较大。

差异一:

(1)初始化函数设计中,查询方式接收不要求使能接收中断使能位,接收完成标志位是在接收函数中清除的。

(2)中断接收时,初始化函数中必须使能中断使能位,接收完成标志位在中断函数中清除。

差异二:

查询方式接收时,整个过程中CPU一直查询CANRFLG_进制RFG状态,只有当它为1时,才接收数据,否则不接收。在这个过程中CPU不能做其他的事情,一直处于检测CANRFLG_RFG的状态,这样会造成代码运行效率低和CPU的浪费。

中断方式接收时,一旦中断标志位置1,CPU就转到中断函数去处理数据,当数据处理完成,CPU会转向原来的任务继续执行,这种方式不会造成CPU的浪费,提高了CPU的使用率。

3、软件验证

在CodeWarriorv5.1中编译和运行代码,通过CAN助手发送8字节数据(0x01,0x02,0x03,0x55,0x05,0x06,0x07,0x08)到CAN总线,MC9S12X对数据处理(扩大两倍)之后再发送给CAN助手。试验结果如下图:

上图所用的接收方式是中断方式。

4、结论

代码设计和测试结果相一致,并且在MC9S12X上运行稳定,实现了CAN通讯功能。函数接口设计采用结构体指针方式,保证了函数接口的一致性,可移植性强。即使后期需要添加或者删除结构体成员时,也不会影响其他函数对此函数的调用,保证了接口的统一性。

参考文献

S12微处理器 篇6

电能是一种最为广泛使用的能源, 电网供电质量高低直接影响工业企业生产、民众生活质量的好坏。为分析供配电系统运行状况, 对系统实施监视、控制, 需实时准确地测量系统中的电气参数。为了实现低压配电网电压参数测量为例, 设计一种基于飞思卡尔MC9S12XS128单片机的多通道交流采样系统。实验显示, 该系统能很好地实现测量任务。

1 电力交流采样系统设计方案

1.1 总体方案

主要针对电压、电流信号的采样和处理进行设计。系统硬件电路由电源电路、前向通道信号采集与处理电路、MC9S12XS128主控模块、液晶显示电路、MAX232串口通信电路等组成, 结构如图1所示。电源电路提供5V电源, 前向通道信号采集与处理电路起到信号调理作用, 将调理好的信号输入到ADC。数据采集和处理由MC9S12XS128来完成。液晶显示用于实时显示测量结果。

1.2 硬件电路设计方案

1.2.1 单片机模块

单片机是系统的控制核心, 采用飞思卡尔MC9S12XS128。其内置2组10位/8位的A/D模块, 8位/10位精度可设置, 8位数字量转换时间6μs, 10位数字量转换时间7μs, 含有采样缓冲器、放大器, 具有可编程采样时间, 转换结束标志和转换完成中断, 外部触发控制, 可选择单次转换模式或连续转换模式等特性。MC9S12XS128芯片、时钟晶振电路、复位电路等构成单片机主控模块。

1.2.2 信号采集与处理电路

选用TV1005-1M电流型电压互感器和TA1005-2M电流互感器。

TV1005-1M型电压互感器绝缘电阻常态时大于1000MΩ, 工作频率范围为20Hz~20k Hz。接法如图2所示, 输入电压小于1000V, 输出电压不大于1/2倍放大器电源电压, 相移小于5°, 额定电流为2m A。

U1A部分为积分电路, 电阻R3为1.5kΩ, 电容C1为0.47μF。U1B部分为电压跟随器, 输入阻抗比较大, 输出阻抗较小, 可以提高电路的带负载能力。R4为上拉电阻, 可以将正弦电压提升到零电平以上, 供单片机的A/D转换器采集。U1C为一个过零点比较器, 当电压小于零电平时, 比较器输出电压为零, 当输入电压大于零电平时, 比较器输出电压为5V高电平, 这样就可以将正弦交流电变换为方波, 单片机可利用此方波信号采集交流电的频率。

1.2.3 液晶显示电路

选用1602字符型液晶显示器, 其可显示16×2行字符。芯片工作电压4.5~5.0V, 工作电流2.0m A。1602的D[7, 0]分别与单片机的PA[7, 0]连接, RS、R/W、EN分别由PH[4, 6]口控制。液晶D1脚接地, D2脚接5V稳压电源, D3脚通过一个10K的可变电阻, 用于调节液晶屏字符的对比度, D15同样接5V稳压电源, 给液晶屏背光。

2 系统软件设计

2.1 软件整体设计

程序主要由以下几个模块组成:单片机初始化模块, 两个定时器中断, 一个外部事件中断, 串口通信模块, 液晶显示模块, 数据处理模块。其中初始化模块又包括:锁相环PLL、高速计数模块脉冲累加、定时器PIT、A/D、普通I/O口、串口发送SCI以及液晶显示初始化等。软件实现的主要功能包括:

(1) 通过定时通道0与脉冲累加的相互配合实现对交流电频率的测量。

(2) 通过MC9S12XS128的定时器1与A/D转换模块实现模数转换, 对交流电信号进行采集并存储到数组中。

(3) 利用傅里叶变换实现MCU对数据的快速处理。

(4) 控制液晶、串口与外部中断实现人机交互显示。

主程序流程如图3所示。

2.2 数据采集和处理程序设计

交流采样法获取电力参数结果的准确程度, 同采样周期的选择、算法的选择有密切联系。采样周期越小, 测量结果越接近真实值。在交流采样中, 较为常用的是同步采样法, 同步采样法是指信号周期T、采样间隔TS、采样点数N严格满足T=N·TS。

设计采用64点递归傅氏算法进行计算求解。因在信号处理电路中对采集到的信号进行了上拉, 故在数据处理时要将上拉后的数据复原。在主函数中, 通过调用自定义均值函数实现数据复原。在程序中, 自定义codedeal () 函数处理前64个采集到的数据, 处理一次后, 后面每采集一次数据, 利用自定义codedeal1 () 函数进行递归傅里叶计算, 加快处理速度。在数据处理函数中, 要进行正弦函数和余弦函数的计算, 由于调用C函数库里的正弦函数和余弦函数计算较为复杂, 影响计算速度, 因此使用查表法进行正弦函数与余弦函数的计算。图4为数据采集程序流图, 图5为数据处理程序流图。

2.2.1 A/D数据采集设计

设计采用64点递归傅氏算法进行参数计算。由于50Hz交流电每一个周期的长度为20ms, 要在这20ms内平均采64个点, 相邻两个点的时间间隔为312.5μs, 但A/D转换的时间只有几微秒, 所以在A/D采样时选择用定时器来设定采样周期, 并且采用读转换完成标志位的方式读取转换数据。A/D初始化设置如下:

ATD0STAT2_CCF为ATD模块的转换完成标志位, 当转换完成时, CCF置1, ATD0DR0L为ATD模块的结果寄存器。转换完成标志位为1则读结果寄存器, 为0则等待。当读结果寄存器时, 转换完成状态寄存器自动清零。

2.2.2 电信号频率测量设计

定时器模块提供了一个16位的脉冲累加器, 该脉冲累加器与定时器的通道7共用引脚, 外部脉冲输入引脚为PT7。输入引脚上每产生一个有效的跳变沿就会使得脉冲累加计数器的值加1。脉冲累加器的控制寄存器设置如下:

电压信号经过过零比较器后, 变为低电平为零, 高电平为5V的方波信号。方波信号通过PT7口输送给脉冲累加器的输入端, 其高低电平变化就会产生上升沿和下降沿, 脉冲累加器就会根据跳变沿的输入进行加计数。当定时器1产生中断时, 读脉冲累计结果寄存器PACNT的值, 可得到交流电的频率。

2.2.3 PIT定时器模块编程

首先设定定时器的初值、运行方式及使能定时器等。定时器0定时时间设定为0.1s, 每过0.1s就将进入定时器0的定时中断, 定时器0的中断向量号为66。定时器0的中断函数如下:

在中断函数中首先读取脉冲累加结果寄存器PAC-NT的值, 并且根据交流电频率的变化动态地改变定时器1的时间长度。另外, 因加入了串口发送程序。当中断函数执行完成后, 需要对其中断标志位写1进行清零。

定时器1主要用来确定A/D数据采集的时间间隔, 其寄存器的值由初始化函数和定时器0中断函数确定, 并可以根据环境的变化进行动态的修改。定时器1的中断向量号为67。中断函数如下:

在函数中, 主要读取A/D转换的结果, 并将其按顺序存到数组中供数据处理使用。数据处理完成后, 向中断寄存器PITTF_PTF1写1, 清定时器1的中断标志位。

3 实验

以测量电压为例。采样低压配电网相电压, 同时另外增加了2个电阻, 使用2个单刀双掷开关来选择3个电阻中的哪一个电阻与电路串联, 电阻阻值的变化来代表电压的变化。3个电阻分别为165Ω、270Ω和380Ω, 对应的电压分别为220V、134V和93V。实验结果表明, 系统满足设计预期要求。

4 结语

介绍一种基于MC9S12XS128单片机的低压配电网电气参数测量的电力交流采样系统设计, 实验表明, 该系统能很好实现低压配电网电气参数的测量, 实时性强, 准确度高。

参考文献

[1]余建明, 同向前, 等.供电技术 (第4版) [M].北京:机械工业出版社, 2005

[2]王宜怀, 曹金华.嵌入式系统设计实战—基于飞思卡尔S12微控制器[M].北京:北京航空航天大学出版社, 2011

[3]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社, 2004

[4]康华光, 陈大钦, 等.电子技术基础[M].北京:高等教育出版社, 2005

[5]师树恒, 孙明, 师素娟.基于MC9S12XS128的智能循迹小车设计[J].自动化与仪表, 2012 (4) :50-52, 60

S12微处理器 篇7

1 开发平台的设计思路

平台设计的目的为两方面:一方面, 帮助学习飞思卡尔单片机的学生快速入门, 通过对MC9S12DG128实验平台的学习与应用, 使学生逐步熟悉飞思卡尔嵌入式系统软硬件的设计过程, 从而掌握利用飞思卡尔单片机开发平台开发设计相关的嵌入式系统;另一方面, 为采用飞思卡尔单片机的工程师提供一整套的开发支持, 通过提供一系列的可重用硬件设计方案、可重用的结构化的软件模块达到嵌入式系统设计重用的目的, 达到有效缩短应用开发周期, 提高开发质量。为了满足开发平台的开发需求, 硬件系统采用核心区+扩展区的结构方式。核心区设计成一个最小系统, 采用标准总线的方式扩展到扩展区, 本平台经对全系列S12 MCU的考察, 基于总线基本兼容, 采用引脚最完整的MC9S12DG128, 选用其外部IO定义成标准互连总线。互连总线一端连接需要的核心区, 另一端连接扩展区。此外, 核心区也可单独设计成一块核心板, 然后用欧式插槽和应用开发板相连。应用开发板的设计为保持通用性, 提供嵌入式系统常用的功能模块, 将这些模块挂接到互连总线;为了满足不同应用, 这些模块还支持重组, 因此, 这些模块不应该挂接到总线的固定部位, 应该在这些模块与互连总线之间插入可通断的总线开关。母板提供的外设不可能满足所有的应用需求, 因此, 应该支持扩展, 最典型的情况是根据应用开发的需求扩展原型设计电路。此外, 由于S12 MCU支持BDM后台调试, 开发平台提供BDM调试器电路, 最灵活方式是单独设计一个DBM调试器。综上所述, 最终形成该实验平台的方案。如图1所述。

2 各模块电路设计

2.1 电源模块

电源部分由1个USB、1个外部电源插座及其供电电路和电源指示电路组成, 电源模块中采用7805稳压模块和AS1117线性稳压模块, 为实验平台提供稳定可靠的电源。

2.2 串口通信模块

串口通信部分由485串口通信部分、232串口通信部分和232串口、485串口、CAN总线位选部分组成。485串口通信部分由MAX485电平转换电路、1个1*2和1个1*3排针组成, 原理图如图2所示。

232串口通信部分由1个串行端口和MAX202电平转换电路组成。232串口、485串口、CAN总线位选部分由1个1*2和1个2*6排针及位选电路组成。

2.3 LED数码管显示模块

LED数码管显示部分由两个8段数码管电路和2个1*8排针组成, 采用共阴极4位一体数码管, 利用4个8085三极管驱动, 数码管显示模块原理图如图3所示。

2.4 其他模块

LCD显示部分由1块1602液晶、74HC245驱动芯片, 外围电路和2个1*16、2个1*8排针组成。模拟量输入模块由2个10K电位器和2个1*2排针组成。蜂鸣器和喇叭模块由2个1K电阻、1个蜂鸣器、1个喇叭、2个8050三极管和1个1*2排针组成。CAN总线部分由1个82C250及外围电路和1个1*2排针组成。

3 本实验平台采用的关键技术

3.1 基于互联总线的硬件系统可重用结构设计技术

S12MCU嵌入式应用开发平台采用结构化组件的方法来设计了核心子板、应用开发板、扩展开发模块, 基于开放式的S12互通总线组实现互联。

3.2软硬件协同设计技术

平台设计时, 充分考虑了硬件和软件的设计要求和优化设计方面, 在整个设计的声明周期, 软硬件的设计移植是保持并行的, 在设计过程中两者交织在一起, 相互支持, 相互提供开发的平台。

3.3 软件重用技术

平台的软件按照可重用方法设计, 采用标准C编程、采用层次化和结构化的编程方式, 设计了嵌入式实时操作系统μC/OS-II下的多任务设备驱动程序, 可以很容易移植到其它的系统上。

3.4 RTOS下多任务程序设计技术

平台的软件采用了基于前后台系统和实时操作系统两种开发方式。

4 结论

本文基于MC9S12DG128汽车单片机实验平台, 紧贴汽车电子技术的特点, 为学习飞思卡尔单片机的学生提供了一个实用高效的实验平台, 同时也可做为汽车电子产品开发者的开发测试平台。

参考文献

[1]安晓莉.基于AT89S52的单片机开发板设计[J].电子工程设计, 2009 (9) .

[2]王军琴, 李会武.基于MC9S12XS128的单片机开发板的设计[J].现代电子技术, 2011 (14) .

[3]邵贝贝, 薛涛.从MC9S12D到MC9S12XS[J].电子技术应用, 2009 (1)

【S12微处理器】推荐阅读:

上一篇:音乐的世界性下一篇:电镜扫描法

本站热搜

    相关推荐