《现场总线与控制》实验指导书1207 1658.docx
- 文档编号:6263587
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:110
- 大小:843.04KB
《现场总线与控制》实验指导书1207 1658.docx
《《现场总线与控制》实验指导书1207 1658.docx》由会员分享,可在线阅读,更多相关《《现场总线与控制》实验指导书1207 1658.docx(110页珍藏版)》请在冰豆网上搜索。
《现场总线与控制》实验指导书12071658
《测控总线实用技术》实验指导书
北京服装学院信息工程学院
2011年10月
目录
F040实验板使用说明书1
F040CAN程序设计参考13
实验1CygnalIDE使用练习18
实验2CAN物理层通信接口22
实验3简单的CAN通信26
实验4CAN总线通信与控制38
实验5RS485串行通信接口49
实验6帧同步与差错控制54
实验7485总线多机通信62
实验8数码管扫描显示实验65
实验9直流电动机控制实验68
实验10A/D转换实验71
实验11LCD显示控制实验74
实验12电梯控制实验79
实验13CAN节点与LONWORKS节点间的通信实验83
附录一CYGNALIDEWindows88
附录二MenusandToolbars90
附录三CygnalConfigurationWizard92
附录四电梯管脚说明94
参考文献97
F040实验板使用说明书
实验者在实验前应阅读本使用说明书。
一、C8051F040开发系统简介
C8051F040单片机开发系统由CygnalSOC单片机开发工具和C8051F040SOC单片机实验板两部分组成。
前者提供了在PC机上开发全系列CygnalSOC单片机应用的软件环境和与PC机的通信;后者提供了硬件环境和扩展手段。
1.CygnalC8051F单片机开发工具
老式仿真器带有目标仿真头和仿真插座,还要或多或少地占用系统资源,如存储器、定时器、通信通道等,有时会造成开发工作不方便。
C8051F系列的所有单片机在片内均设有调试电路,通过边界扫描方式获取单片机内部的状态信息,再经JTAG接口传送到PC机上的开发环境,从而实现在PC机上对用户系统进行调试。
这种调试是在系统的、全速的、非侵入式的。
调试时完全不占用系统资源,符合IEEE1149.1边界扫描标准。
Cygnal开发工具中的Debug可以观察/修改寄存器和存储器,支持单步运行、断点运行、连续运行和停止运行命令,还可以开辟观察窗口、设置观察点、堆栈监视器等。
不仅支持汇编级调试,还支持C51源代码级调试。
它的编程工具Config也比较有新意,朝填表方式和傻瓜化的方向发展,使初学者也能较快开展工作。
图1、JTAG适配器(EC2或EU2)通过RS232接口与PC机连接
(1)开发工具主要技术指标
支持的目标系统:
所有C8051F系列单片机
系统时钟:
最大25MHz
支持汇编语言级和C51源代码级调试
支持KeilC
(2)IDE软件运行环境
操作系统:
Windows95/98/Me/NT/2000/XP
RAM:
32MB
占用硬盘空间:
40MB
空闲的COM口:
1个
(3)开发工具与PC机硬件连接
将适配器EC2(或EU2)与目标系统用JTAG扁平电缆连接。
将PC机与适配器EC2用RS232电缆连接,或与适配器EU2用USB电缆连接。
2.C8051F040SOC单片机片内资源
(1)高速8051微控制器内核
流水线指令结构;
70%指令的执行时间为1个或2个系统时钟周期;
扩展的中断系统。
(2)存储器
4352字节数据存储器(4k+256);
64k字节程序存储器(FLASH);
(3)CAN总线2.0B
32个报文对象;
邮箱可根据需要仅中断CPU。
(4)数字外设
64个I/O口线,所有口线均耐5V电压;
5个通用16位计数器/定时器;
可编程的16位计数器/定时器阵列(PCA),有6个捕捉/比较模块;
2个UART、硬件SMBus(I²C兼容)、SPI串口;
看门狗定时器。
(5)模拟外设
a.12位ADC;
1LSBINL保证单调;
可编程转换速率,最大100kSPS;
12个外部输入,可编程为单端输入或差分输入;
可编程放大器增益16、8、4、2、1、0.5;
数据相关窗口中断发生器;
内置温度传感器3。
b.高电压差分放大器
60V普通模式输入范围;
偏置调节为–60V~+60V;
16种增益设置从16至0.05。
c.8位ADC
可编程转换速率,最大500kSPS;
8个外部输入,可编程为单端输入或差分输入;
可编程放大器增益:
4、2、1、0.5。
d.2个12位DAC
e.3个模拟比较器
f.内部电压基准
g.精确的VDD监视器
更详细的资料可参见CygnalC8051F04xdatasheet。
二、F040实验板使用注意事项
图2、C8051F040实验板
1.电源
实验板上自带3.3V和5V电源,3.3V给F040单片机最小系统单独供电,5V供外围芯片使用。
电源指示灯:
红为+3.3V,黄为外加+5V。
实验者需要扩展电路时,可引出实验板上的5V电源使用。
如果外扩电路所需的电流较大(>1A)时,需外接5V电源。
先切断内部5V电源(将J1跳到“EX”),再将外接5V电源连接到板上。
外接5V电源时极性不得接错,接线柱标志“+”代表正极。
当使用RS-232、CAN、RS-485、DAC及LED时需要5V电源。
注意:
先开3V电源,再开5V电源。
关机时顺序相反。
不得带电拔插EC2。
2.单片机最小系统
工作电压:
3.3V,不允许高于3.6V。
短路块:
J9,J2。
J9(MONEN)接DGND时,禁止VDD监视器。
J9接VDD时,允许VDD监视器工作,当VDD<2.7V时强制系统复位。
在模拟应用时,应注意J2的接法:
J2可以将片内基准源VREF输出给VREFD、VREF0和(或)VREF2。
D/A转换:
VREF与VREFD连接,
12位A/D转换:
VREF与VREF0连接,
8位A/D转换:
VREF与VREF2连接。
3.RS232接口
工作电压:
5V。
短路块:
J7。
应用RS232时,短接J7,不用时断开J7。
短接J7后,管脚P0.0、P0.1、P7.0、P7.1就分别配给RS232的通信线TXD、RXD、RTS、CTS了。
它们与9针RS232插座管脚号的对应关系见下表。
表1、9针RS232插座管脚号的对应关系
F040管脚名
P0.0
P0.1
P7.0
P7.1
RS232信号名
TXD
RXD
RTS
CTS
9针RS232插座管脚号
2
3
8
7
4.CAN/RS485
工作电压:
5V。
短路块:
J16、J17、J18、J19、J20、J24。
这部分电路既可用于现场总线CAN通信,又可用于RS485总线通信,但不能同时使用,要用上述短路块来切换。
当CAN总线通信时,将短路块J16、J17、J18、J19、J24跳线到“CAN”,485总线通信时,将短路块J16、J17、J18、J19、J24跳线到“485”。
CAN通信或485通信,J20都应短接。
若采用其它CAN收发器时,J20开路。
CAN方式:
目前采用的CAN收发器为TJA1040。
P7.2连接它的8脚STB(Standby),控制收发器的工作模式。
系统复位时,STB是高电平,TJA1040处在待机模式;通信时,应在程序中将P7.2置为低电平,唤醒TJA1040。
RS485方式:
RS485是半双工通信,P7.2用于总线方向控制。
P7.2经过一级反相器,控制75176的发送允许端DE和接收允许端。
P7.2为高电平时,RS485总线处于接收状态,P7.2为低电平时,总线处于发送状态。
系统复位时,485总线处于接收状态。
5.其余部分
(1)按键P7.3。
短路块:
J23。
P7.3用作按键时应短接J23,P7.3用作一般口线时应断开J23。
(2)四个增强驱动的输出口线P7.4~P7.7。
这些口线加强了驱动(-15mA,+24mA),并各接1个LED,低电平亮。
工作电压:
5V。
短路块:
J8。
控制P7.4~P7.7输出。
P7.4~P7.7输出(LED显示)时,应短接J8。
6.扩展外部电路
扩展插孔(2×47个,每个孔的定义见下表)
扩展插针(8×8个,P0~P7)
扩展外部电路时,注意输入电压值:
端口I/O(P0~P7)、/RST和JTAG引脚允许5V输入;其他数字管脚只允许3.3V输入;模拟输入不应超过基准源Vref。
表2、扩展插孔(2×47个)每个孔的定义
信号名称
信号类型
说明
电源
AV5+
电源、地
模拟5V电源
模拟地
AGND
VDD5
数字5V电源
数字地
DGND
+5V
隔离后的5V电源
隔离后的地
GND
CPU外围电路
XTAL1
AI
晶体输入。
/RST
DI/O
复位。
内部接VDD监测器的OD输出。
当MONEN有效且VDD<2.7V时被驱动为低电平。
模拟电路
DAC0
AO
DAC的电压输出(带跟随器)
DAC1
AIN0.0~3
AI
ADC0输入通道0~3(带跟随器)
HVCAP
AI/O
高压差分放大器
电容
HVREF
AI
参考
HVAIN+
同向输入端
HVAIN-
反向输入端
VREF
AI/O
电压基准
带隙电压基准输出端
VREFD
AI
DAC的电压基准输入端
VREF0
ADC0的电压基准输入端
VREF2
ADC2的电压基准输入端
CAN
CANRX
DI
CAN
接收端
CANTX
DO
发送端
口线
P0.0~4
DI/O
P0.0~4
P0.5
外部存储器ALE(复用方式)
P0.5
P0.6
外部存储器/RD
P0.6
P0.7
外部存储器/WR
P0.7
P1.0~7
AI
ADC2输入通道0~7
DI/O
外部存储器A8~A15(非复用方式)
P1.0~7
P2.0~7
DI/O
外部存储器A8~A15(复用方式)
外部存储器A0~A7(非复用方式)
P2.0~7
P3.0~7
DI/O
外部存储器AD0~AD7(复用方式)
外部存储器D0~D7(非复用方式)
P3.0~7
P4.0~4
DI/O
P4.0~4
P4.5
外部存储器ALE(复用方式)
P4.5
P4.6
外部存储器/RD
P4.6
P4.7
外部存储器/WR
P4.7
P5.0~7
DI/O
外部存储器A8~A15(非复用方式)
P5.0~7
P6.0~7
DI/O
外部存储器A8~A15(复用方式)
外部存储器A0~A7(非复用方式)
P6.0~7
P7.0~3
DI/O
外部存储器AD0~AD7(复用方式)
外部存储器D0~D7(非复用方式)
P7.0~4
P7.4*~7*
DO
口线驱动能力:
-15mA,+24mA
附件
CLK、IN1
DI
与非门的两个输入端
与非门的输出端
OUT1
DO
IN2、IN3
DI
或非门的两个输入端
或非门的输出端
OUT2
DO
注:
管脚的详细定义请参见CygnalC8051F04xdatasheet。
三、C8051F040的特点
1.SOC的概念:
内置数字设备、模拟设备
尽管F040仍采用51内核,但其内部硬件资源比8051丰富得多,片内还带有PGA、8位ADC、12位ADC、12位DAC、温度传感器等模拟设备,往往无须扩展就能构成一般的小型应用系统,所以被称为SOC(SystemonChip)。
设计中应充分利用片内的资源,尽量不再扩展外部存储器和外部设备。
因为扩展要对外提供数据总线、地址总线、控制总线,将这些总线引出去要占用原来口线的管脚,反而要损失约2.5个8位口,代价很大。
如果必须扩展外部存储器和外部设备,可以优先考虑采用串行RAM和设备,通过SPI或SMBus(I2C)板内串行总线来实现扩展,尽量不要通过系统总线扩展以免占用GPIO的管脚。
2.交叉开关(CROSSBAR)的概念:
数字设备可配置到管脚
交叉开关的作用:
将需要引出的内置数字设备的输入输出线分配到低端口的管脚上,不能分配到高端口的管脚上。
将内置模拟设备分配到端口的管脚上不由交叉开关负责。
分配按固定优先权顺序进行,不能随意分配,不如1016等CPLD灵活。
低端口管脚是多重复用的。
除了8051的复用(P0口与数据总线、低8位地址总线复用,P2口与高8位地址总线复用,P3口与ALE、读、写信号复用)外,新增的内置数字设备和模拟设备,也要占用管脚。
交叉开关就是将28条内置数字设备的I/O线分配到低端口的32个管脚上。
一般不会要求将全部28条内置数字设备的I/O线分配到管脚上,因为未必所有内置数字设备都要用到;有时可供分配的管脚不够32个,因为可能有些管脚已经被占用了;例如,若使用ADC2,则要占用P1口的8个管脚,就只剩下24个可供分配的管脚了。
口线管脚:
各口输出方式可配置:
OD/推挽。
(通过各口的输出方式寄存器配置)
例外:
当SDA,SCL,RX0,RX1出现在管脚上时,自动被配置成OD输出。
P1、P3输入方式可配置:
数字/模拟。
(通过P1、P3的输入方式寄存器配置)
弱上拉电阻:
可全局禁止/全局允许。
(禁止可进一步节能,8051中为固定上拉电阻)
虽是3V电源,但口线管脚可耐5V输入。
口线的管脚内部共连接5(或4)条线:
(见下图)
图3、口线的管脚内部连线图(引自CygnalF040DataSheet)
模拟输入:
P1给ADC2,P3给ADC0。
数字输入:
带施密特输入。
数字输出上管:
选OD输出时关,选推挽输出时开。
(注)
数字输出下管:
可置1该口线,则关断。
(注)
弱上拉电阻:
可全局关/开,不能单独对某一位关/开。
根据使用情况,应将不用的线全部关掉,以保证精度,且节能。
注:
若交叉开关CROSSBAR将管脚分配给内置数字设备作为输入端时,该管脚的输出驱动器自动断开。
交叉开关的缺点:
可靠性:
可程序配置的结构固然比固定结构灵活,但极端情况下,干扰脉冲可能造成错误配置,不如固定结构可靠。
灵活性:
管脚配置的灵活性不如1016,1016更方便PCB设计。
但比固定管脚方便,如:
EMIF可选高端口或低端口。
3.特殊功能寄存器(SFR)引入页(PAGE)的概念
通过SFR实现配置(初始化)和访问端口、内置设备。
2维地址:
起因:
内部增加了许多数字/模拟设备,8051原有的128个SFR字节不够了,必须扩展。
采用按页索引的扩展方法。
2维地址是逻辑的,是一种数据结构。
SFR管理方法:
页地址+(页内)字节地址。
8051的SFR相当于只有一页,F040的SFR可以有256页,目前只用了0、1、2、3、F页,每页仍为128字节。
这种方法给以后的扩展留有充分的余地。
访问F040的SFR只能用页索引的方法,这是学生常犯的错误之一。
AllPages属性:
一些常用的SFR字节具有这种属性,在任何页都可直接访问,访问前后不必换页,比较方便。
页栈的作用:
中断时保护页地址,中断后自动恢复,无须用户程序保护、恢复。
4.低端口、高端口
F040/042的封装是100Pin的,高低端口的64条口线全部引出到管脚。
F041/043的封装是64Pin的,其内部虽然也有高端口,但只引出了低端口的32条口线,高端口的寄存器只能当通用寄存器用。
对高端口未引出的口线(CMOS输入端)也要配置,以节电。
低端口可字节寻址,也可位寻址。
根据F040DataSheet,高端口只能字节寻址,但实际操作中发现也可以位寻址。
通过交叉开关CROSSBAR,内置的数字设备只能配置给低端口,不能配置给高端口。
但外部存储器接口EMI和模拟设备ADC2可以配置给高端口或低端口。
(不是通过交叉开关CROSSBAR)
任何时候MOVA,Pn所得到的是引脚状态,而不是Pn口或分配给引脚的内置数字/模拟设备的状态。
5.EMIF外部存储器接口
(1)用途访问片外XRAM、PRAM,访问片外I/O接口。
(2)指令:
MOVXA,@DPTR
MOVXA,@Ri(与8051不同,高8位地址由EMIF0CN给出,而不是由P2给出)
e.g.MOVEMIF0CN,#12H
MOVR0,#34H
MOVXA,@R0;A←[1234H]
时序可编程:
以便接口不同速度的器件。
可编程:
/RD、/WR、ALE脉宽,地址的建立、保持时间。
A0~A7与D0~D7复用/不复用可选,而8051只能复用AD0~AD7。
复用方式少占用一个口(P1或P5),但要增加一片74LS373作地址锁存器,PCB布线麻烦些。
F040/042的XRAM可配置在高/低端口上,通过将PRTSEL(EMI0CF.5)设置为1/0实现。
若选择低端口,则应令EMIFLE(XBR2.1)=1,以通知交叉开关在复用方式时跳过P0.7、P0.6、P0.5(/WR、/RD、ALE)。
6.内置数字设备
PCA(可编程计数器阵列)
6个(F020为5个)捕捉/比较模块公用一个计数器,因此它们的时钟是相同的。
这与T0、T1、T2、T3、T4(F020无T4)不同,后者是独立计数器,可以具有不同的时钟源。
16位计数器无“飞读”,要求先读L8。
计数器功能有所增强,需CPU干预少。
如PWM方式时有电平切换功能,不必靠程序对某一位口线取反。
CAN控制器(CAN2.0B)
只有CAN控制器,不带收发器。
CANRAM与系统RAM互相独立,CANRAM不由CPU管理,而由CAN控制器管理。
CANRAM中有32个报文对象。
CPU访问报文对象通过接口寄存器IF进行。
CPU支持CAN中断。
“邮箱”只在必要时中断CPU。
7.内置模拟设备
ADC012/10bit,13通道,100sps,单端/差动
(4个独立管脚模拟输入Ain,P3的8个管脚可按位配置为模拟/数字,HVDA。
020为8个独立管脚)
PGA从0.5~16,共6挡。
8路通过交叉开关配置到P3口的管脚。
其余为固定管脚。
有窗口检测器中断。
可设定上下限,越限中断,节省CPU带宽。
窗口内外两种设定方法,灵活。
HVDA:
60VPP,对AGND±60V。
ADC2(在F020中叫ADC1)
8bit,8通道,500sps,单端/差动(F020无差动)
PGA从0.5~4,共4挡。
通过交叉开关配置到P1口的管脚。
有上下限窗口检测器中断。
(F020无)
DAC12bit,2通道(可8bit方式),固定管脚
输出更新方式:
写数据寄存器高位时。
(先写L后写H)
T2、T3、T4溢出时,用当前数据寄存器的值自动更新一次,即输出上一次的值。
在定时器中断服务程序中再给DAC的数据寄存器赋值,但该值不立即输出,要落后一次。
注意:
采样频率可设定。
复位时为最低SYSCLK/32。
分频系数为0~31。
但应使采样频率<7.5MHz。
还可以采用外时钟。
启动转换方式可设定。
ADC0/ADC2,16通道可同步启动转换。
可通过短路块选择基准源VREF的来源。
8.片内JTAG调试与边界扫描
片内Debug电路帮助非入侵式、全速在电路在系统调试,不再需要仿真器。
调试手段齐全:
断点、单步、存储器与寄存器的检查与修改、WatchPoint、堆栈监视器等。
9.其它
F040
F020
OSCXCN的bit7
空
有XTLVLD
OSC频率稳定中断
无
有
交叉开关配置寄存器个数
4(XBR0,1,2,3)
3(XBR0,1,2)
四、配置F040的交叉开关
1.优先权交叉开关(CROSSBAR)译码器
内部数字设备的输入输出线要经过配置才能引出到管脚上。
已分配给内部数字设备的I/O线的管脚不能再用作GPIO的口线。
一般设计不会使用所有的内部数字设备的输入输出线,未用到的就不必配置到管脚上,以节省管脚。
多占一个管脚就意味着损失一条口线。
CROSSBAR将内部数字设备的I/O线分配到低端口(P0~P3)的管脚,而不能分配到高端口的管脚,也不能分配内部模拟设备。
分配按固定的优先权顺序进行:
UART0、SPI、SMBus、UART1……。
端口引脚的分配顺序是从P0.0开始。
参见下交叉开关优先权译码表:
表3、交叉开关优先权译码表(该表引自CygnalF040DataSheet)
分配交叉开关引脚的操作方法有两种:
(1)直接对交叉开关配置寄存器XBR0~XBR3赋值。
每一条内部数字设备的I/O线对应交叉开关配置寄存器中的一位,如果将某位置1,交叉开关将该位所对应的I/O线按优先权顺序分配给端口引脚。
(参考下面的例子)。
(2)使用配置向导。
在CygnalIDE的Tools菜单中,选择CygnalConfigurationWizard,即可进入配置向导。
2.交叉开关引脚分配示例
要求:
将UART0、SMBus、UART1、/INT0和/INT1分配到管脚(共8个)。
将外部存储器接口配置为复用方式,并使用低端口。
将P1.2、P1.3和P1.4配置为模拟输入(单端输入),以便用ADC2测量加在这些引脚上的电压。
管脚配置步骤:
片内数字外设配置:
即设置XBR0~XBR2,将其中的位UART0EN、SMB0EN、INT0E、INT1E和EMIFLE置1,得到XBR0=05h,XBR1=14h,XBR2=02h。
外部存储器接口配置:
复用方式并使用低端口,令PRTSEL=0,EMD2=0。
输入方式配置:
将P1.4、P1.3和P1.2引脚配置为模拟输入,设置P1MDIN=0E3h。
允许交叉开关:
置位XBARE=1,使得XBR2=42h。
至此,求出的管脚分配为:
表4、管脚分配表
芯片引脚
信号(非固定位置的信号,按优先权排序)
说明
P0.0
TX0
UART0
P0.1
RX0
P0.2
SDA
SMBus
P0.3
SCL
P0.4
TX1
UART1
P0.5
ALE
EMI在低端口,复用方式。
(固定位置)
P0.6
/RD
P0.7
/WR
P1.0
RX1
UART1
P1.1
/INT0
P1.2
AIN2.2
P1.2~P1.4为模拟输入。
(固定位置)
P1.3
AIN2.3
P1.4
AIN2.4
P1.5
/INT1
P2.0~P2.7
A8~A15
EMI在低端口,复用方式。
(固定位置)
P3.0~P3.7
AD0~AD7
配置相关口线的输出方式:
(1)将内部数字外设的输出引脚配置为推挽方式:
包括TX0、TX1。
得到P0MDOUT=11h。
(2)将EMI控制的输出引脚配置为推挽方式:
包括AD0~AD7、A8~A15、ALE、/RD、/WR。
得到P2MDOUT=P3MDOUT=0FFh、P0MDOUT=0E0h。
和
(1)的P0MDOUT相或,得到P0MDOUT=0F1h。
(3)断开模拟输入引脚内部的输出管,以免损失ADC精度:
设置P1MDOUT=00h(漏极开路),P1=0FFh(高阻态)。
F040CAN程序设计参考
一、F040中CAN控制器的结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现场总线与控制 现场总线与控制实验指导书1207 1658 现场总线 控制 实验 指导书 1207