《汽车总线技术》实验指导书_第1页
《汽车总线技术》实验指导书_第2页
《汽车总线技术》实验指导书_第3页
《汽车总线技术》实验指导书_第4页
《汽车总线技术》实验指导书_第5页
已阅读5页,还剩42页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、汽车总线技术汽车总线技术实验指导书实验指导书王思山王思山 编编梁玉红梁玉红 审审湖北汽车工业学院电气与信息工程学院电子信息系湖北汽车工业学院电气与信息工程学院电子信息系2010 年年 05 月月目录目录第第 1 章章 汽车总线实验箱开发基础知识汽车总线实验箱开发基础知识.11.1 汽车总线实验平台简介.11.2 实验平台硬件资源.11.3 实验平台软件资源.21.4 实验平台硬件构架.21.5 开发软件介绍.31.6 实验开发步骤介绍.3第第 2 章章 基础实验基础实验.12.1 熟悉 FREESCALE CODEWARRIOR开发环境.1一、实验目的.1二、预备知识.1三、实验设备及工具(包

2、括软件调试工具).1四、实验原理.1五、实验内容.2六、实验步骤.2七、总结体会.62.2 LCD 驱动设计实验.1一、实验目的.1二、预备知识.1三、实验设备及工具(包括软件调试工具).1四、实验原理.1五、实验内容.9六、实验步骤.9七、总结体会.102.3 温度采集实验.11一、实验目的.11二、预备知识.11三、实验设备及工具(包括软件调试工具).11四、实验原理.11五、实验内容.17六、实验步骤.17七、总结体会.182.4 AD 转换采集实验.19一、实验目的.19二、预备知识.19三、实验设备及工具(包括软件调试工具).19四、实验原理.19五、实验内容.23六、实验步骤.23

3、七、总结体会.242.5 直流电机控制实验.251一、实验目的.25二、预备知识.25三、实验设备及工具(包括软件调试工具).25四、实验原理.25五、实验内容.30六、实验步骤.30七、总结体会.312.6 步进电机控制实验.32一、实验目的.32二、预备知识.32三、实验设备及工具(包括软件调试工具).32四、实验原理.32五、实验内容.36六、实验步骤.37七、总结体会.38第第 3 章章 LIN 总线通信实验总线通信实验.393.1 汽车 LIN 总线基础通信实验.39一、实验目的.39二、预备知识.39三、实验设备及工具(包括软件调试工具).39四、实验原理.39五、实验内容.44六

4、、实验步骤.44七、总结体会.453.2 车窗模拟控制实验.46一、实验目的.46二、预备知识.46三、实验设备及工具(包括软件调试工具).46四、实验原理.46五、实验内容.49六、实验步骤.49七、总结体会.503.3 基于 LIN 通信的收音机控制实验.51一、实验目的.51二、预备知识.51三、实验设备及工具(包括软件调试工具).51四、实验原理.51五、实验内容.55六、实验步骤.56七、总结体会.56第第 4 章章 CAN 总线通信实验总线通信实验.574.1 汽车 CAN 总线基础通信实验 .57一、实验目的.57二、预备知识.57三、实验设备及工具(包括软件调试工具).572四

5、、实验原理.57五、实验内容.62六、实验步骤.63七、总结体会.644.2 汽车仪表控制实验.65一、实验目的.65二、预备知识.65三、实验设备及工具(包括软件调试工具).65四、实验原理.65五、实验内容.65六、实验步骤.65七、总结体会.674.3 汽车 CAN 总线多节点通信实验 .68一、实验目的.68二、预备知识.68三、实验设备及工具(包括软件调试工具).68四、实验原理.68五、实验内容.68六、实验步骤.69七、总结体会.71第第 5 章章 网关通信实验网关通信实验.725.1.72一、实验目的.72二、预备知识.72三、实验设备及工具(包括软件调试工具).72四、实验原

6、理.72五、实验内容.73六、实验步骤.73七、总结体会.75附录附录.761第第 1 章章 汽车总线实验箱开发基础知识汽车总线实验箱开发基础知识1.1 汽车总线实验平台简介汽车总线实验平台简介汽车总线技术实验箱是具有汽车 CAN 和 LIN 双总线实验、教学和科研设备,通过汽车 CAN总线和 LIN 总线的通信模拟对汽车的车速、转速、仪表显示、灯系、收音机、车窗和网关的控制。本实验箱具有多 CPU、多节点、双总线、多种控制对象和支持高层协议等特点。汽车总线技术实验箱是面向汽车电子、车辆工程专业的实验、教学和科研平台,可用于汽车电子相关专业课程的实验教学,也可用于基于 CAN 总线和 LIN

7、总线的科学研究。提供多个实验例程,使用成熟总线协议栈和设备驱动库,便于熟悉和掌握汽车总线技术的原理、应用。1.2 实验平台硬件资源实验平台硬件资源实验平台实物图如下图 1.1 所示。各模块的具体功能如下:图 1.2.1 实验平台实物图CPU 主板:CPU 为 MC9S08DZ60,4M 晶振,复位按键,6 针 ISP 接头发动机节点:车速直流电机、传感器及车速显示;发动机转速直流电机、传感器及发动机速度显示仪表节点:车速、发动机转速和水温的步进电机显示;油量显示;压力显示;里程表显示;左右转向灯传感器节点:水温传感器及显示;油量传感器及显示;压力传感器及显示;加速踏板模拟;档位模拟车载收音机节

8、点:搜台、存台、上步进调台、下步进调台;显示频率;搜台成功指示灯系节点:刹车灯指示;转向左转指示;转向右转指示;收音机、灯系控制节点:刹车控制、转向控制;搜台、存台、上步进调台、下步进调台;显示相关信息车载收音机天线车载收音机天线车载收音机节点车载收音机节点灯系节点灯系节点发动机节点发动机节点仪表节点仪表节点步进电机步进电机三档开关三档开关编程节点编程节点收音机灯系控制节点收音机灯系控制节点网关节点网关节点传感器节点传感器节点档位开关档位开关2网关节点:CAN 总线数据包指示;LIN 总线数据包指示编程节点:主要包括温度传感器;直流电机及测速 1 个;步进电机及其驱动 2 个RS232 模块:

9、可以用于调试,也可以用于串口下载CAN 接口:TJA1050LIN 接口:TJA1020液晶:两个电压 3.3V,128*64 点 LCD;一个 5V 供电,3.3VI/O,分辨率为 320*2403.5寸 TFTLCD实验箱硬件配套资源:220V 电源线下载器收音机天线1.3 实验平台软件资源实验平台软件资源汽车总线技术实验箱配有实验指导书方便实验教学。支持最新的 CodeWarrior for Microcontrollers v10.1 和 CodeWarrior Development Studio v6.3。汽车总线实验装置可以开设的实验项目有:汽车 LIN 总线基础通信实验汽车 L

10、IN 总线模拟控制实验汽车 CAN 总线基础通信实验汽车 CAN 总线模拟控制实验LIN 总线和 CAN 总线网关通信实验基于 LIN 通信的收音机控制实验车灯控制实验仪表控制实验发动机模拟控制实验J1939 协议通信实验1.4 实验平台硬件构架实验平台硬件构架 实验平台的硬件框图如下图 1.4.1 所示:3CAN节点CAN节点CAN节点LIN节点LIN节点LIN节点发动机节点仪表节点传感器节点车载收音机节点灯系节点收音机,灯系控制节点自由编程节点网络控制、监视及网关键盘及显示传感器及控制对象键盘及显示LIN总线CAN总线图 1.4.1 实验平台功能框图1.5 开发软件介绍开发软件介绍Code

11、Warrior 是 Metrowerks 公司研发的专门面向 Freescale 所有 MCU 与 DSP 嵌入式应用开发的软件工具,是 Freescale 向用户推荐的产品。Metrowerks 公司是 Motorola 公司于 1999 年收购的、独立运行的子公司。CodeWarrior 分为 3 个版本:特别版、标准版和专业版。特别版是免费的、用于教学目的,对生成的代码量有一定限制,C 代码不得超过 12KB,对工程包含的文件数目限制在 30 个以内。标准版和专业版没有这种限制。3 个版本的区别在于用户所获得的授权文件不同,特别版的授权文件随安装软件附带,不需要特殊申请,标准版和专业版授

12、权文件需要付费,同其他商业软件一样,付费前有 1 个月的试用期。CodeWarrior 特别版、标准版和专业版的定义随所支持的微处理器的不同而不同。CodeWarrior IDE 是飞思卡尔半导体公司推出的一款支持多种硬件平台的集成开发环境,CodeWarrior for Microcontrollers v6.3,可以为 RS08、HC(S)08 以及 ColdFire V1 等微控制器的设计提供快速高效的开发工 具,实现源程序编辑、编译以及全片模拟、在线仿真等诸多功能。1.6 实验开发步骤介绍实验开发步骤介绍1、接通电源,打开电源开关2、连接下载器,一端通过 USB 连接线与主机 USB

13、接口连接,一端与实验箱 CPU 主板BDM(Background Debug Mode 后台调试模式)口连接。3、下面以 HCS08DZ60 的 C 语言为例简单介绍在 CodeWarrior for Microcontrollers v6.3 集成开发环境中的开发过程。具体可见附录中的 CodeWarrior for Microcontrollers 教程。4运行 CodeWarrior IDE。点击桌面快捷方式图表或选择“开始程序Freescale CodeWarrior CodeWarrior for Microcontrollers v6.3CodeWarrior IDE”打开 Cod

14、eWarrior 集成开发环境。如下图1.6.1 所示。单击图 1.6.1 CodeWarrior 集成开发环境主界面点击 Create New Project 或通过菜单选择“File New Project”进入建立微控制器新工程界面,如图 1.6.2 所示。图 1.6.2 微控制器新工程建立界面选择微控制器型号和连接方式(Connections) ,连接方式默认选择为“Full Chip Simulation” 。微控制器型号和连接方式在工程建立后,也可以在工程属性栏根据需要进行修改。单击下一步进入工程名称、存放路径、开发语言设置界面、输入工程名称、制定工程存放在库中找到MCS09DZ6

15、05路径、选择相应的开发语言,如图 1.6.3 所示。命名选择存放路径选择开发语言图 1.6.3 工程名称、存放路径、开发语言设置界面点击下一步进入工程文件添加、移除界面,如图 1.6.4 所示。可以对新工程的文件进行添加、移除管理。图 1.6.4 工程文件添加、移除界面点击下一步进入快速应用开发设置界面,如图 1.6.5 所示,可以选择期间初始化和“Processor Expert”工具自动生成初始化代码。图中选择“None”则不生成任何器件初始化代码,工程中只包含启动代码(Startup Code) 。6图 1.6.5 快速应用开发设置界面点击下一步进入开发语言设置界面,出现 C/C+设置

16、界面,如图 1.6.6 所示,可以选择启动代码的类型、使用存贮器的模式以及浮点数支持方式。图中分别选择“ANSI 启动代码(ANSI startup Code) ” “小型存贮器的模式(Small) ”和“不支持浮点数(None) ” 。图 1.6.6 开发语言设置界面点击下一步进入 PC-lint(TM)设置界面,如图 1.6.7 所示。PC-lint(TM)是 Gimpel 软件公司开发的程序调试工具,图中选择“No” 。7图 1.6.7 PC-lint(TM)设置界面点击完成系统会根据上面的设置信息创建新工程,新工程窗口如图 1.6.8 所示。图 1.6.8 工程窗口在工程窗口中进行程序

17、编写,编写好后进行进行编译,如图 1.6.9 所示。主机通过 USB 口与调试工具相连,调试工具通过 BDM 插头与目标板(实验箱)相连。主机、调试工具、目标板(实验箱)三者缺一不可。8单击编译图 1.6.9 程序编译点击编译后自动弹出调试窗口,并依次出现如图 1.6.10 所示对话框。单击图 1.6.10 对话框9单击运行图 1.6.11 运行图这样就可以将调试通过的程序下载到目标硬件进行在线调试运行了。1第第 2 章章 基础实验基础实验2.1 熟悉熟悉 Freescale CodeWarrior 开发环境开发环境一、实验目的1、认识实验箱结构,熟悉实验箱操作;2、熟悉软件开发环境 Free

18、scale CodeWarrior;3、熟悉 MCU MC9S08DZ60 和 GPI/O 的结构及其使用。二、预备知识C 语言的基础知识、程序调试的基础知识和方法,Freescale CodeWarrior 集成开发环境的基本操作以及 MCU MC9S08DZ60 和 GPI/O 的结构。三、实验设备及工具 硬件:汽车总线技术试验箱、DBM、PC 机 Pentumn500 以上,硬盘 10G 以上。 软件:Freescale CodeWarrior for MCU v6.3 集成开发环境。四、实验原理MC9S08DZ60 系列 MCU 最多可提供 53 个通用 I/O 管脚和 1 个专用输入

19、管脚。这些管脚和片上外围设备(定时器、串行 I/O、ADC、MSCAN 等)共享。通过端口数据寄存器执行并行输入/ 输出读取/ 写入。不管是输入还是输出方向,都由端口数据 方向寄存器控制。数据方向控制位(PTxDDn)决定是否启动相关管脚使用的输出缓冲器,同时控制端口数据寄 存器读取的源。相关管脚的输入缓冲器总是处于使能状态,除非管脚用作模拟功能或输出管脚。当一个端口管脚被配置为通用输出时,或者某外围设备使用该端口管脚作为输出时,通过软件可以在两个驱动强度中选择一种并同时启用或禁用斜率控制。当一个端口管脚被配置为通用输入或 某外围设备使用该端口管脚作为输入时,软件可以选择一个上拉器件。复位完成

20、后,所有这些管脚被立即配置为高阻抗通用输入(内部上拉器件被禁用) 。当一个片上外围系统控制管脚时,即使该外围模块通过控制该管脚的输出缓冲器的启用来控制管脚方向时,仍然由数据方向控制位决定从端口数据寄存器中读取的内容。一个不错的编程习惯是在把端口管脚方向修改为输出前就写入端口数据寄存器,这确保不会用2在 端口数据寄存器内的旧数据值来临时驱动管脚。五、实验内容 本次实验要求熟练使用 Freescale CodeWarrior 集成开发环境,掌握在 Freescale CodeWarrior 开发环境下进行源代码编写和编译,并通过 DBM 接口下载已经编译好的程序到汽车总线技术实验箱中的编程节点中运

21、行。六、实验步骤1、编程实现对、编程实现对 LED 的控制的控制本步骤是实现对汽车总线技术试验箱中编程节点的两个 LED(D14、D15) (原理图与实物图如图 2.1.1 所示)同时闪烁。图 2.1.1 LED 原理图与实物图#include void main( void ) MCG_Init(); DZ60_GPIO_Init(); EnableInterrupts; while( 1 ) LED_Trigger(2); Cpu_Delay100US(2000); 其中头文件中包含 MC9S08DZ60.H,msCANdrv.h,dz60_libs.h,分别是用来对 MC9S08DZ60

22、端口的定义,对 msCAN 端口的定义以及对 MC9S08DZ60 库的定义。这些头文件在之后的实验中会以模板形式给出。void MCG_Init( void) /主板的初始化,在 dz60_libs.c 中定义3 SOPT1 = 0 x20; MCGC2 = 0 x36; while (!MCGSC_OSCINIT); MCGC1 = 0 xB8; while (!MCGSC_IREFST); while (MCGSC_CLKST != 0b10); MCGC2 = 0 x3E; MCGC1 = 0 x98; MCGC3 = 0 x48; while (!MCGSC_PLLST); MCGC

23、2 = 0 x36; while (!MCGSC_LOCK); MCGC1 = 0 x18; while (MCGSC_CLKST != 0b11); void DZ60_GPIO_Init( void) / MC9S08DZ60 GPIO 口初始化,在 dz60_libs.c 中定义 LED_Init(); /*本步骤只涉及到两个 LED 灯,故只有两个 LED 对应端口的定义以及初始化,在 dz60_libs.c 中定义*/#define LED_TOP0 PTDD_PTDD0#define LED_TOP1 PTDD_PTDD1 #define LED_Init() PTDDD|= 0

24、x03#define EnableInterrupts _asm CLI; /设置中断void LED_Trigger( UINT8 bits) /控制 LED 闪烁,在 dz60_libs.c 中定义 if(bits = 0) LED_TOP0 = 0 x01; else if(bits = 1) LED_TOP1 = 0 x01; else if(bits = 2) LED_TOP0 = 0 x01; LED_TOP1 = 0 x01; void Cpu_Delay100US(UINT32 us100) /延迟,在 dz60_libs.c 中定义 asm 4loop: pshh pshx

25、ldhx #$0061 label0: aix #-1 cphx #0 bne label0 pulx pulh nop nop nop aix #-1 cphx #0 bne loop rts 连接下载器,一端通过 USB 连接线与主机 USB 接口连接,一端与实验箱编程节点的 CPU 主板的 BDM 口连接,将程序下载到编程节点的主板上。2、编程实现按键控制、编程实现按键控制 LED在第 2 步基础之上,在编程节点模块中,实现用按键(S15、S16)分别控制LED(D14、D15)的亮灭。当按键 S15 按下时 LED(D15)亮,当按键 S16 按下时 LED(D14)亮。按键原理图与实

26、物图如下图 2.1.2 所示。注意:为了避免悬空输入管脚消耗额外的电流,应用程序中的复位初始化程序应该启用片内上拉器件或将未使用或未绑定的管脚的方向设置为输出以确保他们不会悬空。按键按下时,对应的端口为零。图 2.1.2 按键原理图与实物图5以下是部分关键代码介绍,请在第 2 步源程序基础上改进完成本步骤程序。/*本步骤只涉及到两个按键,故只有两个按键对应端口的定义以及初始化,在 dz60_libs.c 中定义*/#define switch_top0 PTBD_PTBD4#define switch_top1 PTBD_PTBD5#define switch_Init() PTBDD &am

27、p;= 0 xcfvoid PTB_Init (void) /端口初始化 PTBPE = 0 x30;void LED_On( UINT8 bits) /LED 亮控制 if(bits = 0) LED_TOP0 = 0 x01; else if(bits = 1) LED_TOP1 = 0 x01; else if(bits = 2) LED_TOP0 = 0 x01; LED_TOP1 = 0 x01; void LED_Off( UINT8 bits) /LED 灭控制if(bits = 0) LED_TOP0 = 0 x00; else if(bits = 1) LED_TOP1 =

28、0 x00; else if(bits = 2) LED_TOP0 = 0 x00; LED_TOP1 = 0 x00; 填写主程序代码:6七、总结体会12.2 LCD 驱动设计实验驱动设计实验一、实验目的一、实验目的1、了解 LCD 基本概念与原理。2、理解 LCD 的驱动控制。3、熟悉用总线方式驱动 LCD 模块。二、预备知识C 语言的基础知识、程序调试的基础知识和方法,Freescale CodeWarrior 集成开发环境下编写和调试程序的基本过程。三、实验设备及工具 硬件:汽车总线技术试验箱、DBM、PC 机 Pentumn500 以上,硬盘 10G 以上。 软件:Freescale

29、 CodeWarrior for MCU v6.3 集成开发环境。四、实验原理驱动设计是汽车总线实验箱的开发中十分重要的部分,它要求开发者不仅要熟悉驱动程序与应用程序的接口关系而且还要非常熟悉所开发硬件的工作原理。这对驱动开发者提出了比较高的要求,这个实验主要是给大家进入驱动设计提供一个简单入门的实例。驱动程序的作用是应用程序与硬件之间的一个中间软件层,驱动程序应该为应用程序展现硬件的所有功能,不应该强加其他的约束,对于硬件使用的权限和限制应该由应用程序层控制。但是有时驱动程序的设计是跟所有开发的项目相关的,这是就可以在驱动层加入一些与应用相关的设计考虑。1、LCD(Liquid Crysta

30、l Display)原理液晶得名于其物理特性:它的分析晶体,以液态存在而非固态。这些晶体分子的特性特征使得它具有两种非常有用的特点:1、如果让电流通过液晶层,这些分子将会以电流的流向方向进行排列,如果没有电流,它们将会彼此平行排列。2、如果提高了带有细小沟槽的外层,将液晶倒入后,液晶分子会顺着槽排列,并且内层与外层以同样的方式进行排列。 液晶的第三个特性是很神奇的:液晶层能使光线发生扭转。液晶层表现的有些类似偏光器,这就意味着它能够过滤除了那些从特殊方向射入之外的所有光线。此外,如果液晶层发生了扭转,光线将会随之扭转,以不同的方向从另外一个面中射出。2、LCD 液晶显示器的硬件结构液晶显示的原

31、理是液晶在不同电压的作用下会呈现不同的光特性.液晶在物理上分成两大类,2一类是无源 Passive 的(也称被动式),这类液晶本身不发光,需要外部提供光源,根据光源位置,又可以分为反射式和透射式两种。Passive 液晶显示的成本较低,但是亮度和对比度不大,而且有效视角较小,彩色无源液晶显示的色饱和度较小,因而颜色不够鲜艳。另一类是有电源的,主要是TFT (Thin Film Transitor)。每个液晶实际上就是一个可以发光的晶体管,所以严格地说不是液晶。液晶显示屏就是由许多液晶排成阵列而构成的,在单色液晶显示屏中,一个液晶就是一个象素,而在彩色液晶显示屏中则每个象素由红绿蓝三个液晶共同构

32、成。同时可以认为每个液晶背后都有个 8 位的寄存器,寄存器的值决定着三个液晶单元各自的亮度,不过寄存器的值并不直接驱动三个液晶单元的亮度,而是通过一个“调色板”来访问。3、MzT35C1 TFTLCD本汽车总线技术实验箱用到的 LCD 为 MzT35C1,它是一块高画质的 TFT 真彩 LCD 模块,模块内置 LCD 控制器以及驱动器,外部 8 位的 8080 总线接口,可方便的使用单片机对其进行连接控制,具有编程方便、易于扩展灯良好性能。MzT35C1 彩色 TFTLCD 显示模块的内置 LCD 控制器以及显存,其背光可由指令控制(128 级可调) ,用户对 MzT35C1 模块进行操作时,

33、实际上是对 LCD控制器进行相关的控制寄存器、显示数据存储器进行操作的。需要注意的是:MzT35C1 模块内部有两个图层的显存,但仅能通过指令来指定当前显示的显存,以及对哪一层显存进行操作;而当前显示的显存与操作的显存为同一屏显存时,此时对显存的操作便会直接体现与屏幕上。MzT35C1 模块在 PCB 背板上集成了一个 LCD 控制器以及显存、背光控制等电路,模块正面是一 3.5 寸 TFT 显示器,显示器通过 FPC 与背板进行连接,并由胶带将其固定在背板上;而模块以 DIP 的双排插针引出控制接口(8 位 8080 并行总线)模块以便于用户连接。以下为模块接口介绍,如图 2.2.1 所示。

34、图 2.2.1 模块接口示意图3表 2.2.1 模块接口引脚说明接口引脚接口引脚说明说明VCC模块供电电源输入(一般无特殊要求为 5V)D0D78 位数据总线CS片选(低电平有效)RSTReset 复位(低电平复位)A0控制寄存器/数据寄存器选择(低电平控制寄存器)WE写信号(低电平有效)RD读信号(低电平有效)GND接地S_CS预留有 ADS7846 的片选S_SCK预留有 ADS7846 的 SPI 时钟输入S_SDO预留有 ADS7846 的 SPI 数据输出S_SDI预留有 ADS7846 的 SPI 数据输入S_INT预留有 ADS7846 的 INT 信号S_BUSY预留有 ADS

35、7846 的 BUSY 信号4、显示 RAM 区映射情况 MzT35C1 模块的 3.5 英寸 TFT-LCD 显示面板上,共分布着 320240 个像素点,当打开显示时,面板上的像素点将与当前选择的显示层显示的数据一一对应;模块中每个像素点需要 16 位的数据(即 2 字节长度)来表示该点的 RGB 颜色信息,所以模块内置一屏的显存共有32024016bit 的空间,通常我们以字节(byte)来描述其大小。MzT35C1 模块的显示操作非常简便,需要改变某一个像素点的颜色时,只需要对该店所对应的 2 个字节的显存(指的是两屏显存中当前处于显示的显存)进行操作即可。为了便于索引操作,模块将所有

36、的显存地址分为 X 轴地址(X Address)和 Y 轴地址(Y Address) ,分别可以寻址的范围为 X Address0319,Y Address0239,X Address 和 Y Address 交叉对应着一个显存单元(2byte) ;这样只要索引到了某一个 X、Y 轴地址时,并对该地址的寄存器进行操作,便可对 TFT-LCD 显示器上对应的像素点进行操作了。提示:以上的描述意味着,当我们对某一地址上的显示进行操作时,需要对该地址进行连续两次的 8 位数据写入或读出的操作,方可完成对一个显存单元的数据写入操作;除此之外,还应确认该层显存当前是处于显示的并且处于操作状态。MzT35

37、C1 模块的像素点与显存对应关系如图 2.2.2所示:4图 2.2.2 显存与像素点对应关系示意图MzT35C1 模块内部有一个显存地址累加器 AC,即用于在读写显存是对显存地址进行自动的累加,这在连续对屏幕显示数据操作时非常有用,特别是应用在图形显示、视频显示时。此外,AC累加器为对 X Address 累加方式,具体为累加到一行的尽头时,会切换到下一行的起始开始累加。MzT35C1 模块内部有两屏的显存,但只能同时显示一屏的显存,用户可以通过指令来指定当前显示的显存图层,此外,还可以指定当前操作的显存图层,也就是说显示着的图层可以与操作着的图层不一样。5、MzT35C1 模块控制方法对 M

38、zT35C1 模块的操作主要分为两种,一是对控制寄存器的地址写入,二是对数据的读写操作;A0 控制线的高低电平状态区别当前的总线操作是对控制寄存器的地址写入还是对所指向的寄存器进行数据操作:当 A0 为低电平时,表示当前的总线操作是对控制寄存器的地址进行操作;当A0 为高电平时,表示对数据写入/读出操作。MzT35C1 模块内部有控制寄存器,用户在使用 MzT35C1 之前以及对其进行操作过程当中,需要对一些寄存器进行写操作以完成 LCD 的初始化,或者是完成某些功能的设置(如当前显存操作地址设置等) 。对控制寄存器进行操作前,需要对控制寄存器地址进行写入操作,以指明接下去的数据操作是针对哪一

39、个寄存器。一般来说操作步骤如下:、在 A0 为低电平的状态下,写入一个字节的数据,该字节为寄存器地址。、然后在 A0 为高电平的状态下,写入两个字节数据,第一字节为高八位,第二字节为低八位;如要读出指定寄存器的数据,则需要连续三次读操作方能完成一次读出操作,第一字节为无效数据,第二字节为高八位,第三字节为第八位。注意:MzT35C1 的显存操作也是通过向指定的寄存器地址进行读写操作来完成的,即对 0 x02寄存器进行操作时,就是对当前处于操作状态下的图层显存进行读写操作。MzT35C1 模块的控制寄存器当中,最常被调用的是寄存器除了对显存操作的 0 x02 寄存器外,还有当前显存地址的寄存器

40、AC,一共由两个寄存器组成,分别存放有 Y Address 和 X Address,表示当前对显存数据的读写操作是针对于该地址所指向的显存单元;而每一个显存单元在前面已经用5图示意过,每个单元有 16 位,最高的 5 位为 R(红)的分量,最低的 5 为为 B(蓝)的分量。如图 2.2.3 所示:图 2.2.3 显存单元示意图所以,当需要对 LCD 显示面板上某一点(X,Y)进行操作时,需要先设置 AC,以指向需要操作的点所对应的显存地址,然后连续写入或者读出数据,才完成对该点的显存单元的数据操作。而当对某一个显存单元完成写入数据操作后,AC 会自动的进行调整,将会指向同一行的下一个点,即 X

41、 地址自动加 1,当 X 地址到达行末时,会自动将 X 地址清零并将 Y 地址自动加 1.注意:写入地址时,要先写入 Y 地址,然后再写入 X 地址。6、控制寄存器介绍 为了能快速掌握 MzT35C1 模块的使用,这里列出 MzT35C1 模块内部控制寄存器,以便快速的掌握 MzT35C1 的驱动控制方法。表 2.2.2 控制寄存器说明(1)Y 地址寄存器(0 x00):当 A0 为低电平时,从总线写入一个字节 0 x00,此时将控制寄存器指向 Y 地址寄存器,该寄存器需设置 16 位寄存器数值,即为 Y 轴地址,实际上高 8 位为无用数据,低 8 位为指定的寄存器地址(YA7YA0) 。注意

42、:对 Y 地址寄存器进行数据写入操作完成后,寄存器地址自动指向 X 地址寄存器。(2)X 地址寄存器(0 x00):当 A0 为低电平时,从总线写入一个字节 0 x01,此时将控制寄存器指向 X 地址寄存器,该寄存器需设置 16 位寄存器数值,即为 Y 轴地址,实际上高 7 位为无用数据,低 9 位为指定的寄存器地址(XA8XA0) 。注意:对 Y 地址寄存器进行数据写入操作完成后,寄存器地址自动指向显存寄存器。(3)显存操作寄存器(0 x02):当 A0 为低电平时,从总线写入一个字节 0 x02,此时将控制寄存器指向显存操作寄存器,此后再对总线进行数据读写操作时,将会写入或读出之前设置 Y

43、、X 轴地址所指向的显存数据(指的是当前处于操作的图层显存) 。对该寄存器的数据读写操作时,一个完整的数据操作包含两个字节,共 16 位,分别定义为某一显存上的三原色分量的分布,如图 2.56所示,即为 RGB565 的格式。(4)背光设置寄存器(0 x03):当 A0 为低电平时,从总线写入一个字节 0 x03,此时将控制寄存器指向背光设置寄存器,该寄存器需设置 16 位的寄存器数值,bit7 位为背光开关控制,为 1 表示打开背光,为 0 表示关闭背光;bit6bit0 为背光的等级设置,可从 0127。(5)模块设置寄存器(0 x04):当 A0 为低电平时,从总线写入一个字节 0 x0

44、4,此时将控制寄存器指向模块设置寄存器,该寄存器需设置 16 位的寄存器数值,bit7 位为当前显示图层设置(可为 0 或 1,分别表示 0 和 1 图层显存) ;bit6 为当前操作图层显存设置(可为 0 或 1,分别表示 0 和1 图层显存) ;bit0 为显示开关,为 1 表示打开显示,为 0 表示关闭显存。7、MzT35C1 模块驱动程序介绍 (1)LCD 模块连接的端口定义(在 LCD_PortConfig.h 中定义)#define LCD_Ctrl_GPIO() PTDDD = 0 x7c , PTCDD = 0 xff #define LCD_Ctrl_Out()#define

45、 LCD_Ctrl_Set(n)PTDD |= (n)#define LCD_Ctrl_Clr(n)PTDD &= (n)#define LCD_CS(0 x012)#define LCD_CS_SET()PTDD |= LCD_CS#define LCD_CS_CLR()PTDD &= LCD_CS#define LCD_RE(0 x013)#define LCD_RE_SET()PTDD |= LCD_RE#define LCD_RE_CLR()PTDD &= LCD_RE#define LCD_A0(0 x014)#define LCD_A0_SET()PTDD

46、|= LCD_A0#define LCD_A0_CLR()PTDD &= LCD_A0#define LCD_RW(0 x015)#define LCD_RW_SET()PTDD |= LCD_RW#define LCD_RW_CLR()PTDD &= LCD_RW#define LCD_RD(0 x016)#define LCD_RD_SET()PTDD |= LCD_RD#define LCD_RD_CLR()PTDD &= LCD_RD#define LCD_Data_GPIO()#define LCD_Data_Out()PTCDD = 0 xff#define

47、 LCD_Data_In()PTCDD = 0 x00#define LCD_Data_BUS_Clr()#define LCD_Data_BUS_Set(n)PTCD = n#define LCD_Data_Read()PTCD(2)初始化 LCD 模块,液晶模块的初始化很重要,初始化是否完成,直接影响之后的操作是否能7够显示出来,特别是 TFT 模块的背光设置,如果背光不亮,则显示是看不出来的。void LCD_Init(void) /在 LCD_Driver_User.c 中定义LCD_PortInit();LCD_RE_CLR();TimeDelay(200);LCD_RE_SET()

48、;TimeDelay(500);LCD_RegWrite(0 x03);LCD_DataWrite(0 x80+70);/设置背光控制使能,设置背光亮度等级为 70(0127)LCD_RegWrite(0 x04);/写系统寄存器LCD_DataWrite(MzT35_Ctrl_Reg);LCD_Fill(LCD_INITIAL_COLOR);void LCD_PortInit(void) /LCD 连接的端口初始化代码,在 LCD_Driver_User.c 中定义LCD_Ctrl_GPIO();LCD_Ctrl_Out();LCD_Ctrl_Set(LCD_CS+LCD_RE+LCD_A0

49、+LCD_RW+LCD_RD);LCD_Data_GPIO();LCD_Data_Out();(3)本实验所涉及到的功能函数介绍a)LCD_Init 液晶初始化(LCD_Dis.c 中定义) 程序:void LCD_Init(void) 描述:液晶显示初始化函数 参数:无 返回:无 注意:在使用 LCD 前,首先应执行该函数,使 LCD 处于可以正常显示状态。b)SetPaintMode 绘图模式设置(LCD_Dis.c 中定义) 程序:void SetPaintMode(BYTE Mode,LCDBYTE Color) 描述:设置绘图模式,以及绘图的前景色 参数:Mode 无意义(暂时保留其

50、功能) ;Color 绘图时的前景色,16 为 RGB 返回:无 注意:无c)FontSet 设置文本字体(LCD_Dis.c 中定义)8程序:void FontSet(DOTBYTE Font_NUM,LCDBYTE Color) 描述:选择显示字符的类型以及字符颜色 参数:Font_NUM字符的类型选择为 1 时表示选择 15*29 点大小的西文字符显示类型,其它值为用户自定义的汉字库/位图库使用。 Color设置字符的颜色,16 位的字型数据,RGB 格式,与 LCD 点的 RGB 对应。 返回:无 注意:只针对显示驱动中包含的 ASCII 码显示。d)PutString 显示字符串(L

51、CD_Dis.c 中定义)程序:void PutString(DOTBYTE x,DOTBYTE y,char *p) 描述:从 x、y 的坐标上显示字符串 参数:x 显示字符的起始列(0239) ;y 显示字符的起始行(0319) ;p 要显示的字符串。 返回:无 注意:仅能用于自带的 ASCII 码字符串显示。e)Rectangle 画矩形(LCD_Dis.c 中定义)程序:void Rectangle(DOTBYTE left, DOTBYTE top, DOTBYTE right, DOTBYTE bottom, BYTE Mode)描述:画矩形程序 参数:left 矩形的左上角横坐标

52、; top 矩形的左上角纵坐标; right 矩形的右下角横坐标; bottom 矩形的右下角纵坐标; Mode - 绘制模式,可以是下列数值之一:0:矩形框(空心矩形)1:矩形面(实心矩形) 返回:无 注意:无f)Line 画直线(LCD_Dis.c 中定义)程序:void Line(LCDBYTE s_x,LCDBYTE s_y,LCDBYTE e_x,LCDBYTE e_y)描述:以绘图前景色在 s_x,s_y 为起始坐标,e_x,e_y 为结束坐标绘制一条直线 参数:s_x 要画直线的 x 起点坐标; s_y 要画直线的 y 起点坐标; e_x 要画直线的 x 终点坐标; e_y 要画

53、直线的 y 终点坐标;返回:无 注意:无9五、实验内容 学习 LCD 显示器的基本原理,理解其驱动控制方式,掌握其驱动方法的基本原理和方法,并用编程实现本次实验要求在 PC 机上编写 LCD 的驱动程序并进行调试,并实现对 LCD 的显示控制。六、实验步骤1、在编程节点中,通过编程实现对其、在编程节点中,通过编程实现对其 LCD 液晶屏的控制,要求在液晶屏的控制,要求在 LCD 屏幕中显示字符串:屏幕中显示字符串:“HUBEI UNIVERSITY Of AUTOMOTIVE TECHNOLOGY” ,写出其主程序:,写出其主程序:2、在编程节点中,通过编程实现对其、在编程节点中,通过编程实现

54、对其 LCD 液晶屏的控制,要求在液晶屏的控制,要求在 LCD 屏幕中显示如图屏幕中显示如图 2.2.4所示的图形,写出其主程序:所示的图形,写出其主程序:图 2.2.4 LCD 显示图形10第第 3 章章 LIN 总线通信实验总线通信实验3.1 汽车汽车 LIN 总线基础通信实验总线基础通信实验一、实验目的一、实验目的1、熟悉 LIN 驱动器特性;2、理解 LIN 的组网方式及节点构成;3、掌握 LIN 软件设计方法二、预备知识二、预备知识C 语言的基础知识、程序调试的基础知识和方法,Freescale CodeWarrior 集成开发环境的基本操作以及 MCU MC9S08DZ60 和 G

55、PI/O 的结构。LIN 的组网方式、节点构成及数据通信方式。三、实验设备及工具三、实验设备及工具 硬件:汽车总线技术试验箱、DBM、PC 机 Pentumn500 以上,硬盘 10G 以上。 软件:Freescale CodeWarrior for MCU v6.3 集成开发环境。四、实验原理四、实验原理1、LIN 总线简介LIN(Local Interconnect Network )局部互联网络是一种低成本的汽车网络可以将开关、显示器、传感器及执行器等简单控制设备连接起来的串行通信网络,是现有多种汽车网络(如 CAN 总线)在功能上的补充 ,主要用于实现汽车中的分布式电子系统控制。因此,

56、LIN 总线是一种辅助的总线网络,在不需要 CAN 总线的带宽和多功能的场合使用,可以大大的节省成本。 LIN Bus 系统主要特性有:单主机多从机组织(即没有总线仲裁),配置灵活;基于普通 UART/SCI 接口的低成本硬件实现低成本软件协议;带时间同步的多点广播接收,从机节点无需石英或陶瓷谐振器,可以实现自同步;保证信号传输的延迟时间,可选的报文帧长度:2、4 和 8 字节;数据校验和的安全性和错误检测,自动检测网络中的故障节点;使用最小成本的半导体组件(小型贴片,单芯片系统)。速度高达 20kbit/s; 112、LIN 总线结构LIN 网络由一个主节点以及一个或多个从节点组成,媒体访问

57、由主节点控制-从节点中不必有仲裁或冲突管理。可以保证最差状态下的信号传输延迟时间。LIN 拓扑结构图如下图 3.1.1 所示:图 3.1.1 LIN 拓扑结构图3、主机和节点功能LIN网络的节点分为:主机任务和从机任务。如图3.1.2所示。1) 主机任务主机任务只在LIN总线主机节点上运行,它控制总线上所有的通信, 如定义传输速率(2-20kb/s,有一个精确的参考时钟驱动),发送同步间隔、同步场、标识符ID场,监控并通过检查效验和验证数据的有效性, 请求从机进入睡眠模式(当需要时再将其唤醒),对从机的唤醒进行响应。2) 从机任务从机任务可在主机或从机节点上运行,它等待同步间隔,在同步场取得同

58、步,分析识别码并做出相应动作(什么也不做,接受数据或发送数据),检查/发送效验。图 3.1.2 主机任务与从机任务示意图4、报文传输 LIN 信息是以报文的形式传送的。报文传输是由报文帧的格式形成和控制的。报文帧由主机任务向从机任务传送同步和标识符信息,并将一个从机任务的信息传送到所有其它从机任务。主机任务位于主机节点内部,它负责报文的进度表、发送报文头(HEADER) 。从机任务位于所有的(即主机和从机)节点中,其中一个(主机节点或从机节点)发送报文的响应(RESPONSE) ,其信息12格式如图 3.1.3 所示。总线具有两个互补的逻辑值:显性和隐性。 图 3.1.3 LIN 的报文帧格式

59、1) 报文帧均由 0-8bytes 的数据及 3bits 的控制信息组成,即由主机节点发送的报文和主机或从机节点发送的响应组成。2) 报头组成:同步间隔场、同步场和标示符场。3) 响应由 1-9bytes 场组成:0-8bytes 的数据场和 1byte 效验和场4) 报文帧之间由帧间空间分隔。报头与响应之间由帧中响应响应空间分隔。最小帧间空间和帧中响应空间均为 0,且两者最大长度均受报文帧的最长度 TFRAME_max 限制。5) 报文内容由标识符指定。标识符不指明报文的目的节点,但描述数据的含义。标识符得最大数量为 64,其中 4 个标识符被保留已用作特殊报文帧(即 2 个命令帧和 2 个

60、扩展帧)在实现专用通信目的。注意: 2 个命令帧均包括 8bytes 响应,可用于主机向从机(或从机向主机)上载和下载数据。此可用于软件升级、网络配置和诊断。命令帧的结构与普通报文帧相同,只是响应场含有用户定义和命令场,而不是数据场,如命令场可使从机进入服务模式或睡眠模式。2 个保留的扩展帧标识符可将用户定义的报文格式和后续的 LIN 格式嵌入 到当前的 LIN 协议中,而不需改变当前的 LIN 规范,这可保证 LIN 从机向上兼容后续的 LIN 协议修订版。扩展帧标识符后面紧跟着的是仲裁码,接收到此标识符得从机必须忽略所有后面字节场,直到出现下一个同步间隔。命令帧和扩展帧的使用由 LIN 协会定义。5、LIN 信息传输过程 LIN 从机向主机

温馨提示

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

评论

0/150

提交评论