




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、声明:本文是基于模型设计自定义目标系统配置指南的续集,主要和大家分享RTW工具箱做自动代码生成时,硬件驱动的编写方法;本文涉及两方面的技术难点C MEX S函数和TLC文件的编写,对这两方面不熟悉的童鞋可以先看看相关的Help 文档。通过硬件驱动模块和上层控制模块的结合,可以实现嵌入式系统C代码的一键式生成,所生成的代码无需做任何修改就可以直接下载到单片机中。本教程开发环境如下:Matlab2010a+CodeWarrior V6.3+Mc9s08dz60欢迎汽车电子工程师加入QQ群:89462451,讨论Matlab在汽车行业的应用,分享自己的独门经验。中断、IO、ADC、TPM、CAN、C
2、CP、MCG下一个模块硬件驱动,你也可以附件列表:dz60该文件夹为自定义目标系统文件系统TLC文件、主函数TLC文件、_file_processTLC文件、_callback_handler文件、_make_rtw_hook文件、模块TLC文件(及C-Mex S函数 blocks该文件夹为中断模块+数字输出模块的硬件驱动、interrupt_init.c中断模块C MEX S函数interrupt_init.tlc对应的TLC文件dz60_dio_out.c数字输出模块C MEX S函数dz60_dio_out.tlc对应的TLC文件demos该文件夹为测试用demo文件interrupt_
3、demo.mdl测试模型,实现500ms和100ms任务(33基于模型设计自动代码生成之硬件驱动.1、自定义目标创建 (32、软件整体架构 (33、硬件驱动编写 (53.1主函数文件硬件驱动 (53.2中断模块硬件驱动 (53.3数字输出模块硬件驱动 (9基于模型设计自动代码生成之硬件驱动基于模型设计1、自定义目标创建本文的硬件平台为Mc9s08dz60,Matlab没有相应目标系统和现成使用模块,所以需要自己创建自定义目标系统和编写相应的硬件驱动。关于自定义目标系统的创建可以参考基于模型设计自定义目标系统配置指南。DZ60的自定义目标系统源代码请参考附件中dz60文件夹下的各文件,此处不再累
4、述。通过setup.m文件可以自动向Matlab中添加该目标系统。2、软件整体架构软件架构对嵌入式系统的重要性,就不再多说了。这里选择较为简单的中断驱动方式来实现整个嵌入式软件的调度。 图1软件整体架构如上图所示,所有的程序处理都是通过RTC中断来实现的,配置RTC模块每隔10ms产生一次中断,并对各个任务进行计时(如flag_100ms,当计时达到时调用相应的任务处理函数(如task_100ms,而主函数中只对整个工程进行初始化(如interrupt_demo _initialize,在for循环中无需其余操作。RTC中断处理函数部分通过中断模块及TLC 文件来对生成的代码进行控制,后文将详
5、述。在模型搭建过程中,只需要调用中断模块,通过修改Function Call System中的内容即可以实现各种任务的调度,如下图所示: 图2软件架构之模块搭建PS:当然,在实际的产品会根据项目需要采用不同的软件架构来实现任务调度,其余架构及嵌入式操作系统的嵌入都可以在本文的基础上进行修改来满足项目需求。非常期望和各位探讨关于嵌入式系统软件架构方面的内容。3、硬件驱动编写硬件驱动主要是编写C MEX S函数和其对应的TLC文件。3.1主函数文件硬件驱动主函数部分编写过程可以参考基于模型设计自定义目标系统配置指南中2.5主函数TLC文件htgt_srmain.tlc。3.2中断模块硬件驱动中断模
6、块只需要传递一个任务周期即可,该参数为edit类型的数据。1、首先在SimulinkUser-Defined Function中找到S-Function模块拖到一个新建的model文件中。2、单击右键,寻则Edit Mask,在Icon&Ports选项卡中输入该模块需要显示的内容,如disp('RTC Interrupt',如下图: 3、点击Parameter选项卡,安装如下方式填写参数信息,其中Promt为显示提示, Variable为参数名称在s函数中调用,Type为显示格式。 4、点击Documentation选项卡,填写相关提示信息,最终该模块显示结果如下。 在
7、看这部分之前,强烈建议先看看Matlab关于C MEX S函数的编写的Help文档。1、文件声明部分#define S_FUNCTION_NAME interrupt_init#define S_FUNCTION_LEVEL2每个C MEX S函数都是按照上面的方式进行声明,这段代码的含义为,声明一个名为interrupt_init和LEVEL2S函数。2、参数声明 参数声明部分,主要是创建一个枚举数组,用于后面的各函数调用,如上面那段代码创建一个以0开始的枚举数据,即INT_PERIOD=0,N_PARAMS=1;后面那行define 用于从终端模块对话框中读取相应的参数。3、模型初始化函数
8、 该部分代码针对中断模块含有的变量个数,输入模块个数、类型等参数进行初始化。4、mdlRTW函数 该函数用于把S 函数的参数值,传递到model.rtw 文件中,再通过tlc 文件读取rtw 文件中值,从而控制自动代码的生成。5.其余函数设置参数个数设置参数为不可调对应一般的C MEX S函数只需要上述两个函数即可实现功能。对于中断模块,由于其需要调用Function Call System,所以要多一点设备。 TLC文件用于控制代码的自定义生成,主要有如下函数:1、BlockTypeSetup函数该函数主要用于同一类模块的初始过程,如一个模型同时函数两个中断模块,则该函数内的代码只会执行一次
9、。这里考虑多个中断模块的情况,需要设置一个全局变量来存储多个模块的任务周期。:Vct_Int_Period表示为全局变量。 2、Start函数该函数用于控制各模块的的初始化代码的生成,如中断模块需要对RTC模块的RTCSC和RTCMOD寄存器进行配置,而这部分代码应该在初始化代码中生成(即interrupt_demo_initialize函数。当一个模型含有多个中断模块时,这个函数对多次在每个中断模块中都执行,这样就能读取到所有中断模块的定时周期, 3、Outputs函数该函数用于控制中断模块的任务调度代码的生成。在该函数中需要调用LibBlockExecuteFcnCall函数来对Funct
10、ion Call System模块中代码进行生成,还需要针对硬件进行相应的函数、变量声明等。如通过如下代码可以实现在model.h文件中声明函数 由于TLC文件的编写是个复杂的过程,没法用简单的几句话说明白,所有本文仅对TLC文件的结构进行分析,而不详细阐述每段代码的具体含义,感兴趣的童鞋可以自己先看看RTW工具箱中关于TLC部分的介绍,再结合附件中的代码摸索。3.3数字输出模块硬件驱动数字输出模块的硬件驱动和中断模块的驱动非常相似,此处只做简要介绍。数字输出模块需要再对话框中配置Port和number两个参数,用于控制各io通道的输出。而输入模块则为0、1、-1,其中0表示输出电平,1表示输出高电平,-1表示取反;mask对话框如下图所示,其创建过程与前文一致,不再累述。 该s函数需要传递的参数是两个popup下拉菜单格式的数据,其S函数编写过程基本和前文一致,各位童鞋自行对比二者之间的区别。数字输出的TLC文件需要从输入模块读取相应的参数,所以需要再Outputs函数中通过LibBlockInputSignal函数来读取输入模块的值,然后对改值进行判断,从而控制代码的生成,如下图,其余部分和前文一致。 PS:本文主要介绍硬件驱动的编写流程,基本不涉及具体的实现过程,需要深究的童鞋,可以先看看Matlab的Help文档,再结合附件中的文档进行摸索。附件中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能家居产品体验店设备维护保养合同
- 影视拍摄现场群众演员意外险及安全保障协议
- 电池制造企业安全生产责任与理赔补充协议
- 全新业态商业连锁品牌加盟合作协议
- 预应力混凝土桥梁工程施工安全防护及检测协议
- 上市公司股权转让款结算及合规审查协议
- 专业潜水旅游项目定制与设备租赁合同
- 模具验收与生产效率提升协议
- 婚前股权投资古董收藏品分割与权益分配协议
- DB42-T 2014-2023 导轨式胶轮系统交通工程技术规程
- 越出站界调车RAILWAY课件
- 河北武安招聘警务辅助人员笔试真题2024
- 2025年高级插花花艺师(三级)理论考试题(附答案)
- 脊柱损伤搬运操作
- 医院医用耗材培训
- 布鲁氏菌病培训课件
- 2025年古董拍卖收藏品买卖协议书
- 【托比网】2024中国工业品数字化发展报告
- 砌石截水墙施工方案
- 海岸工程学设计计算书
- 大学美育知到智慧树章节测试课后答案2024年秋长春工业大学
评论
0/150
提交评论