电动自行车数显车头设计说明书Word文档下载推荐.docx
《电动自行车数显车头设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电动自行车数显车头设计说明书Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
测试方法:
用现有邮电车的电路
拔下前轮电机线,接到稳压稳流电源。
装上后一组电池,开启邮政车电源。
用示波器测量传感器的输出波形。
调整稳压稳流电源,使车头速度显示为8Km/h,记录示波器的波形,调整速度为12Km/h、18Km/h、24Km/h、28Km/h,记录示波器输出波形。
测试结果:
表1.1
速度(Km/h)
波口宽度(ms)
波底宽度(ms)
8
4
2.4
12
3.8
2
16
3
1.5
20
2.2
1.1
24
1
28
0.8
结论:
信号检测防抖动延时时间取300us可满足要求。
2/*需求分析—总体设计—系统框图、资源分配、说明书(8月9
日)
2.1总结构框图、Mcul/O资源分配(图2.1)
P1.1〜P1.6
图2.1
2.2软件总框图
2.2.1主程序
图2.2
2.2.2读/写子程序
返回
2.2.3中断服务程序
T0中断服务:
图2.4
T1中断服务:
里程显示/喇叭信号、转向灯
信号产生。
主程序默认调用
图2.5
INTO中断服务:
图2.6
2.3系统资源细分
2.3.1端口资源:
表2.1:
功能
端口
地址
EEPROM数据输入/输出(SDA)
P3.0
B0H
EEPROM时钟输入(SCL)
P3.1
B1H
里程显示数据第3位
P1.6
96H
里程显示数据第2位
P1.5
95H
里程显示数据第1位
P1.4
94H
里程显示数据第0位
P1.3
93H
里程显示选通第1位
P1.2
92H
里程显示选通第0位
P1.1
91H
速度显示数据第2位
P3.7
B7H
速度显示数据第1位
P1.7
97H
速度显示数据第0位
P1.0
90H
转向信号输出
P3.4
B4H
清零/喇叭信号输出
P3.3
B3H
小数点显示控制
P3.5
B5H
速度传感器信号输入(INT0)
P3.2
B2H
2.3.2中断资源
参考2.2.3
2.3.3工作寄存器/RAM资源(*需在具体设计时进行优化)表2.2:
代号
特征
说明
作用域
STATM_RD
24H.0(20H)
位
读标签
读写操作
STATM_WR
24H.1(21H)
写标签
PWR
24H.2(22H)
伪写标签
SCL0
24H.3(23H)
SCL(P3.1)镜象
COUNT
24H.4(24H)
辅助读写标签
续表2.2:
PCOUNT
R5
REG
基本读写操作时钟
序号
N
R6
基本读写操作序号
M
R7
基本读写操作累计
OK
24H.5(25H)
读与结束标签
WR
24H.6(26H)
内部读写标签
WRB(0〜4)
40H~44H
5个连续字节
读写数据区
WR0
24H.7(27H)
内部辅助读写标签
WRB0
20H(00〜
07H)
1个字节,可位寻址
读写缓冲字节
DELAY(0~1)
Rj、Rj+1
2个连续的REG.
DELAY计数器
清零确认
SC(0~1)
21H、22H
(08H~17H)
2个连续可位寻
址字节
数显、方向、喇叭软
计数器
T1服务
F_OPEN
25H.0(28H)
里程显示转换标签
DISF(1~2)
45H、46H
2个连续字节
显示缓冲
SEL0
25H.1(29H)
传感器信号标签
SCOUNT(0~1)
47H、48H
速度计算计数器
CD(0~3)
50H~53H
4个连续字节
存储本次里程
PDOWN
25H.2(2AH)
掉电标签
3/*需求分析—总体设计—安装尺寸/布局规划(9月20日)说明:
数码LED采用40*14mm,4位带小数点共阴动态显示型<其他指示灯采用5mm高亮度LED。
面板和电路板装配后总厚度不大于13mm。
面板的尺寸/布局如图3.1及图3.2所示。
图3.1面板尺寸(背面)
图3.2面板布局(正面)
/***以下对外保密!
***/
4/*具体设计-硬件设计
4.1电源电路(图4.1)
D221N4148150Q/1W,
~Fl~
R301K
11
R10
11
C10
U87805
DNG
V
丄C11
~0.01u
50V470U2-
U978L05R11
12V打'
'
68Q/1/2W
n
——5V*
'
C12
;
O.Olu
Title
SizeNumber
A3
Date:
17-Oct-2002
File:
\\User02\d电动自行车
图4.1
A说明:
5V电源提供2051及其他TTL电路的电源,C10,D22在掉电时提供对5V的延时「使2051有足够的时间保存里程。
5V*电源提供传感器电源,并作为掉电判断辅助电源,即系统检测到该电源为低电
A3
位时置位掉电标签,保存里程“D22防止C10在掉电时反向放电过快。
File:
\\User02\d电动自行车车头.ddbDrawnBy:
4.2MCU(U1)相关电路(图4.2)8
4.2.1里程显示:
由MCU向七段BCD译码器(LS48)顺序依次提供4个BCD里程码,并提供2线选通控制,通过2-4线译码器
(LS156)产生4个选通信号,依次选通相应的4位里程码,实现里程的动态分时显示。
P3.5(U1第9脚)在显示当前里程时,控制数码管第二位小数点的显示。
4.2.2速度显示:
MCU按计算的速度值输出3位二进制码,从000〜111表示8个档位输出给U4(LS156),U4接成3-8线译码器,可实现D1~D7(LED)随档位的增加依次点亮。
4.2.3速度信号的输入:
速度信号通过INT0(U1第6脚)输入给MCU,J2是霍耳传感器的接口,车轮每转一圈传感器就给INT0一个
低电平,触发MCU中断。
要求低电平的宽度不小于300uS。
4.2.4掉电判断:
R1确保掉电时INT0脚为低电位,触发INT0中断后,检测2U1第12脚电平3,如也为低电平则置位掉电标签。
5
36V
图4.2MCU及外围电路
4.2.5里程存储电路:
由P3.1(U1第3脚)提供同步时钟信号,
P3.0(U1第2脚)作为数据的输入输出及命令的输出串行I/O。
时钟信号由T0中断产生。
U2的1〜3脚接地,将U2的硬地址置为000。
选通则通过P3.0发出的选通命令来实现。
4.2.6其他电路:
里程清零/喇叭电路:
启动时P3.3(U1第7脚)作为清零的判断端口,如在上电前按下AN,上电1秒后放开则里程
1清零。
之后P3.3复用为喇叭音频信号的输出,4这时禁止按下5ANoAN应内置在电路板上不易触到之处。
J3为喇叭按键把接口。
Q1为喇叭
音频信号放大器。
J4为喇叭接口。
转向灯信号电路:
由P3.4(U1第
6
1234
8脚)输出频率约0.8〜1Hz的方波,经Q2放大。
J5为转向开关接口,
J6为转向灯接口,D8/D9(LED)为面板转向指示灯。
复位电路:
C2/R3
构成上电自动复位电路。
4.3电量指示电路:
图4.312V、36V电源由9芯接口提供。
R17〜R24构成分压基准电路,分别提供7.75V/8V/8.25V/8.5V/8.75V/9V/9.25V的基准电压。
分别对应电源电压:
31/32
/33/34/35/36/37V。
W1按如下方法调整:
电源
电压调到36.0V,调整W1使分压输出为9.0V即可。
4.4接口及其他电路:
图
4.4所示。
J1为9芯线接口(即与控
制主板PT0236、
SQ0236-D/T的接口);
J7为尾灯接口;
J12为转把接口,1脚为电源,3脚输出;
J13、J14为刹把接口,
刹车时输出高电
位;
J10、J11为大
灯和大灯开关接
口;
D19、D20、D21
分别为欠压、过流及电源指示灯。
2V
R17
rl卜
11K
R18
1K
D10
LED
R15
10k
W1
R16
5k
.LC15
25V1u
1R19-
R20,
R21・
R22'
R23・
31K
R24
LM339
12V
U7BPM339
9
U7A
D11
U7CLM339
D12
ED
10
11
U7DLM339
D13
U8D
D16
D15
U8A
U8C
D14
R253K/1W
.-36V
图4.3
图4.4
5/*具体设计-软件设计
5.1读写子程序(READ_WRITE)
5.1.1AT24C02的特性及读写操作
AT24C02是2K位(即256字节)电可擦写串行只读存储器
(EEPROM),共8个引脚。
5.1.1.1引脚说明:
1〜3:
A0~A2:
存储器的硬件地址设置引脚,由外部直接接高电位或低电位来设置,可选择000〜111八个地址中的一个,当MCU读写命令中的串行地址和芯片硬件地址相符时可选通该芯片,本应用中
将芯片硬件地址设置为000。
4脚:
地。
5脚:
SDA:
串行数据输入/输出,作为输出时为集电极开路(OC)。
6脚:
SCL:
串行时钟输入,芯片只在上升沿可接受数据,在下降沿可输出数据。
7脚:
WP:
写保护脚,接高电位时保护,低电位时可正常读写,本应用中WP硬接地,不设保护状态。
8脚:
电源脚。
5.1.1.2参数要求:
表5.1
参数说明
5V电源电压时
单位
最小值
最大值
fSCL
时钟频率
400
kHz
tLOW
时钟方波低电位的宽度
1.2
us
tHIGH
时钟方波高电位的宽度
0.6
tBUF
上一数据结束到下一数据开始
的空闲时间
tHD.STA
开始信号保持时间
tSU.STA
开始信号设置时间
tSU.STO
结束信号设置时间
tWR
在与系列的有效结束信号之后,芯片的内部写操作时间
ms
Enduranee
在5V25C下的擦写次数
1M
次
5.1.1.3芯片读写操作
时钟和数据的传输:
SDA脚常需外部元件上拉到高电位。
本应用中由于MCU的I/O有内部上拉电阻,所以省去外部的上拉元件。
SDA脚
上的数据只能在SCL为低电位期间改变(参考图5.1/5.2数据输入时序)。
数据在SCL为高电位时改变将引发一个开始或结束信号(如下定义)。
图5.1
开始信号:
在SCL为高电位时,SDA由高电位跳变到低电位便会产生一个开始信号,在任何操作之前必须要先产生一个有效的开始信号
(图5.2)o
结束信号:
在SCL为高电位时,SDA由低电位跳变到高电位便会产生一个结束信号,在一个读系列之后产生一个结束信号(由外部产生)芯片将被置为低功耗模式(图5.2)o
应答信号(ACK):
所有的串行输入输出数据或地址都是以8位字节为单位的。
每接收一个字节EEPROM将发回一个“0”信号作为应答,这个过程在第9个时钟周期完成(图5.2)o
图5.2写时序
低功耗模式:
在上电时以及在接收到结束信号并完成所有内部操作之
后EEPROM转入低功耗模式。
芯片寻址:
在读写操作前必须先向EEPROM发送一个开始信号及8位的寻址字节(图5.3)以选通芯片。
寻址字节包括:
前四位固定的“1”、“0”系列(图5.3示)(对所有AT24CXX系列芯片都是一样的);
接下来三位是与芯片硬地址A2、
A1、A0相对应的寻址地址位;
第八位是读/写选择位,“1”为读,
“0”为写。
发送寻址字节后,如寻址地址与硬地址相符时,EEPROM将返回一个“0”信号作为应答(ACK);
如果地址不符,EEPROM转入低功耗模式。
写操作:
字节写操作:
MCU在发送
0I役
A,
\]fvw
了寻址字节并收到
MSD
LSB
EEPROM的ACK信号后,
再向EEPROM发送数据要图5.3寻址字节
存储的地址(8位),
EEPROM将再次返回“0”作为应答(ACK),并按时钟接受后面的8位数据,之后又返回一个ACK信号,然后MCU产生一个停止信号,完成本次字节写操作。
这时EEPROM进入内部写周期twR(图5.2)。
twR完成前EEPROM不会对任何输入作出响应。
(图5.4)
图5.4字节写操作
段页写操作:
该EEPROM允许不大于8字节的段页写操作。
初始化操作和字节写操作的相同。
但在第一个数据输入并收到ACK后MCU不产生停止信号,而是继续向EEPROM发送1〜7个字节,在每收到一个字节后EEPROM依然会返回一个ACK,段页写操作必须由MCU产生停止信号来终止。
在接收到每一数据后,数据地址自动加一(图
5.5)。
应答信号(ACK)的检测:
由于EEPROM在进行内部写操作时(twR期间)将不对外部输入作出响应,为了可靠地进行读写,MCU必须
不断发送开始信号及寻址字节,并在第9时钟周期检测ACK,直到
EEPROM完成内部写操作后,才会返回ACK,MCU才可以进行下一步的读写操作。
图5.5段页写操作
读操作:
读操作的初始化与写操作一样,只是寻址字节的第八位,即读写选择位要置为“1”。
有3种读操作:
当前地址读操作、指定地址读操作、系列读操作。
当前地址读操作:
当前数据指针为最后一次读写操作的数据指针加1。
除非掉电,否则该指针保持有效。
但在数据地址出界时该指针将转回到开头,这时写操作将复盖前面的数据。
当MCU发送读初始化操作后,EEPROM将返回ACK信号,并接着串行输出一个当前地址内的数据。
之后MCU不需要产生ACK而是产生一个结束信号。
(图5.6)
图5.6当前地址读操作k
指定地址读:
指定地址读需要一个“伪”写操作来输入指定的地址,
即在开始信号后输入寻址字节(第八位设置为“写”),再输入数据地址字节(即指定地址)。
MCU收到ACK信号之后进行一次当前地址读操作即可读指定地址数据。
(图5.7)
系列读操作:
系列读可以顺序读出一系列的数据,可以用当前地址读或指定地址读方式。
当MCU接收到一字节数据后,将给EEPROM发送一个ACK信号,EEPROM则继续增加地址指针并串行输出数据,到达地址上限后指针回零,系列读仍可继续。
如果在接收到数据后MCU不返回ACK,并在下一时钟周期产生一个停止信号,则终止系列读操作。
(图5.8)
A
图5.8系列读操作K
*需要注意:
哪些ACK由EEPROM产生哪些由MCU产生。
5.1.2读写程序设计思想
根据要求总里程只需要3个字节以BCD码的方式存储,前1字节存储小数点后的1、2位,后2字节分别存储小数点前的2、1、4、3位。
读出的里程或要写入的里程均放在读写数据区WRB(0〜4)的后3
位即42〜44H(参考表2.2)。
40H、41H则用来存放寻址字节或数据地址字节。
(表5.1)
表5.1读写数据区的存储结构:
SCL系列
7
RAM地址J、、
WRB(0):
40H
A2
A1
A0
R/W
寻址字节
WRB
(1):
41H
X
数据地址字节
WRB
(2):
42H
小数1、2位
WRB(3):
43H
整数2、1位
WRB(4):
44H
整数4、3位
程序设一缓冲字节WRB0,保存当前要发送或接收的WRB(i)。
设置3个标签:
STATM_RD:
当前地址系列读操作标签
STATM_WR:
段页写操作标签PWR:
“伪”写操作标签调用读写子程序(READ_WRITE)前预设这3个标签以实现相应的功能。
如指定地址读实现如下:
SETBPWR
SETBSTATM_WRACALLREAD_WRITE
SETBSTATM_RDACALLREAD_WRITE
40H、41H中的内容在子程序中根据标签赋值。
子程序返回前将这3个标签清零。
SCL的产生通过T0中断服务实现,因T0中断服务程序有多个功能块,必须根据相关标签确定功能块入口(参考图2.4)。
相关标签的设置及T0的初始化、开启均在READWRITE子程序中进行。
第1次中断
第1次中断
III
SCL
第2次中断第4次中断
图5.9T0中断点
中断的定时取SCL周期的1/4,每2次中断SCL进行一次取反操作,如图5.9示:
第1次中断,SCL为低电位,可对SDA引脚进行读/写操作;
第2次中断对SCL引脚取反;
第3次中断SCL
为高电位,可对SDA取反产生开始或停止信号。
第4次中断再对SCL取反。
根据读写时序特性,定义基本读写操作:
最多包含10个SCL
周期,并依次编号为0〜9SCL周期,第0周期只产生开始或结束信号,第1〜8周期对SDA引脚读或写,第9周期对ACK检测或发送ACK。
一次READ_WRITE的调用是基本读写操作的多次重复,只有
第1个基本读写操作包含10个SCL周期,最后一个基本读写操作可能只包含第0SCL周期(即只产生一个结束信号),中间的基本读写操作只包含第1〜9SCL周期。
T0中断中用PCOUNT(取0〜9)对一个基本操作中的SCL进行序号标识;
用N对基本读写操作进行序号标识;
用M累计基本操作总次数。
STATM_RD、STATM_WR、PWR、SCL0、COUNT、PCOUNT、N、M唯一决定本次中断要执行的动作。
5.1.3读写子程序流程图(图5.10)
停T0
图5.10读写子程序流程图
5.1.4读写中断服务程序流程图(图5.11)
RETI
M++,N++
L(X5)
f
N=6,
N=5?
X7
=FFH
=0
SCL0=0?
Y(X4)
ACC=SDA
SDA=0
Y
ACK=0?
(X6)
WRB0=&
WRB(0),N=0,SDA=0,SCL=0,
SCL0=0,C0UNT=0,PC0UNT=0
M++,
N++
M++
PCOUNT=0,*WRB0=*(&
WRB(0)++)
PWR=1?
*(&
WRB
(1)++)=*WRB0
N=2?
OK=1,
PWR=0
图5.11读写中断服务程序框图
5.2转向灯、喇叭信号发生及数字显示程序(T1中断服务)
5.2.1程序设计思想
T1中断服务程序定时向喇叭信号端口(P3.3)、转向信号端口
(P3.4)发送占空比50%的方波信号,其中喇叭信号频率取值在800〜1000Hz之间,转向信号频率取值约0.6〜0.8Hz,分别符合人的听觉、视觉一般要求。
数字显示采用动态显示方式