[原创] 使用R7F0C80212套件完成叉车OPS(精简)控制器设计

dingzy_2002   2014-10-10 14:05 楼主
我参加了瑞萨电子免费试用活动并荣幸地获得了一块R7F0C80212套件;
在获得此套件的1个多月时间里,经过了熟悉R7F0C80212单片机及开发软件/编程软件的过程;
应EEWORLD管理员nmg热情邀请,我将在申请活动中提交〈叉车OPS控制器〉项目共享出来。
首先声明的是此项目是经过软件/硬件 减裁的,在实际产品中要比此更为复杂,对可靠性要求要更高。
未完待续.....

回复评论 (17)

硬件上,我使用的仍是瑞萨R7F0C80212套件,在其目标板上添加了相应的指示/输入检测项目
下图为项目所使用的相关硬件原理图
R7F0C80212目标板-OPS控制器原理图(部分).pdf (81.15 KB)
(下载次数: 4, 2014-10-10 14:09 上传)

其中:
目标板添加的硬件
是后期添加的硬件
点赞  2014-10-10 14:12
OPS控制器的功能说明:
1.座椅开关信号输入:叉车的座椅上安装一触点开关,当操作人员处在座椅上时,此开关是闭合的,信号处理后引入到单片机的检测引脚
2.档位开关信号输入:叉车的行驶是通过档位开关信号判断的,当档位开关无输出电压时,叉车处于停止状态,有电压时,叉车处于需要行驶状态;
3.档位状态指示输出:当档位开关无输出电压时,档位状态指示灯亮;提示操作人员,叉车处于无档位(空档)状态
4.座椅开关断开指示输出:当操作人员离开座椅长达2秒以上时,座椅开关断开指示灯亮;提示座椅上无操作人员
5.行驶电磁阀控制输出:当操作人员离开座椅长达5秒以上时,关闭输出,使得叉车行驶功能被关闭,从而保护叉车因无人操作时酿成安全事故;
6.警告指示输出:当操作人员离开座椅长达2秒以上时,输出2秒警告指示信号;当操作人员离开座椅长达5秒后又重新回到座椅上,但档位开关还输出电压信号时,输出间断的警告指示信号,提示操作人员正确处理档位。
点赞  2014-10-10 14:32
附件为OPS控制器项目说明(硬件篇)
使用瑞萨开发板完成叉车OPS(精简)控制器设计.doc (78 KB)
(下载次数: 4, 2014-10-10 16:35 上传)
使用瑞萨开发板完成叉车OPS(精简)控制器设计.pdf (163.21 KB)
(下载次数: 5, 2014-10-10 16:36 上传)
本帖最后由 dingzy_2002 于 2014-10-10 16:36 编辑
点赞  2014-10-10 16:35
引用: dingzy_2002 发表于 2014-10-10 16:35
附件为OPS控制器项目说明(硬件篇)

又重新添加了一些内容,这下完整了:
使用瑞萨开发板完成叉车OPS(精简)控制器设计-硬件篇.doc (6.26 MB)
(下载次数: 6, 2014-10-11 13:10 上传)

使用瑞萨开发板完成叉车OPS(精简)控制器设计-硬件篇.pdf (2.52 MB)
(下载次数: 29, 2014-10-11 13:11 上传)

点赞  2014-10-11 13:11
软件使用code generator进行内部资源初始化,并单独添加自己的C文件,做成整个工程
附件为源文件

    OPS_test.rar (2014-10-11 13:13 上传)

    93.7 KB, 下载次数: 3

点赞  2014-10-11 13:14
【项目】使用瑞萨开发板完成叉车OPS(精简)控制器设计(软件篇) 要使用R7F0C80212ESP目标板进行项目开发,首先需要建立软件环境(均可从瑞萨中文官网下载,但是要注册一下;当然赠送套件配套的光盘也有全部资料),安装教程可参考光盘中《R7F0C80xx2 1部分练习》或EEWORLD网站帖子,安装IDE CubeSuite+,项目所使用的软件版本为V2.02.00;此IDE内含编程软件Renesas Flash Programmer(简称FRP)版本为 V2.03 ●EZ-CUBE驱动安装; ●EZ-CUBE固件更新。 ●EZ-CUBE拨码设置。 可参考EEWORLD帖子(部分列表),访问 电子工程世界-论坛»论坛 创意与实践› DIY/开源硬件专区【瑞萨电子DIY专区】https://bbs.eeworld.com.cn/forum-202-2.html进行详细浏览。 以下是一部分入门的教程: Ø 【R7F0C80212】为你搭建环境: https://bbs.eeworld.com.cn/thread-445558-1-6.html Ø 【瑞萨R7F02code generator https://bbs.eeworld.com.cn/thread-444828-1-6.html Ø 《视频1CUBESUITE+安装及添加R7F0C80212芯片支持 EZ-CUBE安装固件下载: https://bbs.eeworld.com.cn/thread-444054-1-6.html Ø 新手共同进步——获得Design tool,让Cube Suite+支持R7F0C80212 https://bbs.eeworld.com.cn/thread-444062-1-6.html Ø 跟我从零上手瑞萨电子MCU套件-----1)安装环境,下载LED DEMOhttps://bbs.eeworld.com.cn/thread-445789-1-3.html; Ø 跟我从零上手瑞萨电子MCU套件-----2)利用Code generator傻瓜式LED_blinkhttps://bbs.eeworld.com.cn/thread-445971-1-5.html; .... 本帖最后由 dingzy_2002 于 2014-10-13 12:48 编辑
点赞  2014-10-13 10:45
项目建立使用code generator设置R7F0C80212ESP的内部资源;项目所使用的资源见下表:
R7F0C80212ESP
内部资源
资源使用信息
code generator设置
完成功能
时钟/电源
内部时钟5MHz
电源电压:2.4VVDD5.5V
同左
工作在宽电压范围下,5MHz系统时钟。
端口
P0
P0.0
强上拉输出
Out+Output1
档位状态指示
P0.1
无上拉输入,作为AD转换引脚
Unused
档位信号AD输入
P0.2
强上拉输出
Out+Output1
行驶电磁阀控制输出指示
P0.3
强上拉输出
Out+Output1
警告指示
P0.4
强上拉输出
Out+Output1
座椅开关断开指示
P4
P4.0
编程调试数据引脚
Unused

P12
P12.5
复位引脚
RESET pin Used

P13
P13.7
输入引脚
In
座椅开关输入
外部中断
未使用
Unused

按键及中断
未使用
Unused

看门狗
使用最大的溢出时间
关闭看门狗中断
Overflow time:(216-1)/fil4.369S

时钟/ 蜂鸣器输出
未使用
Unused

上电复位(SPOR)
设置为2.7V
Reset generation level
(VSPDR)=2.7V

定时器阵列单元
通道0:间隔定时器,50ms中断
通道1:未使用
Channel 0:
●interval timer
●Interval value:50ms
●INTTM00使能,高级别中断
Channel 1:Unused
●第50MS运行一次AD转换,并根据AD结果进行相应的逻辑处理。
●第250ms运行一次座椅信号检测处理逻辑运算以及警告信号处理。
串行阵列单元
未使用
Unused

A/D 转换器
使用通道0
8位转换结果,
始终工作,
无中断
●Comparator operation setting:Operation
●Resolution seting:8bits
●A/D channel selection:ANI0
●Conversion time mode:Normal1
●Conversion time 84/fCLK


点赞  2014-10-13 10:50
1.png
点赞  2014-10-13 10:53
项目开发所使用到的函数列表:
函数名称
函数说明
函数文件
备注
void main(void)
主函数
r_cg_main.c
由code generator生成,再添加相应的函数
void R_MAIN_UserInit(void)
系统初始化
void hdwinit(void)
硬件初始化
r_cg_systeminit.c
由code generator生成,不作修改
Void R_Systeminit(void)
芯片内部功能模块初始化
void R_CGC_Get_ResetSource(void)
时钟/复位初始化
r_cg_cgc_user.c
void R_PORT_Create(void)
管脚模块初始化
r_cg_port.c
void R_CGC_Create(void)
时钟/复位模块初始化
r_cg_cgc.c
void R_WDT_Create(void)
WDT(看门狗)模块初始化
r_cg_wdt.c
void R_TAU0_Create(void)
定时器通道0模块初始化
r_cg_tau.c
void R_TAU0_Channel0_Start(void)
定时器通道0启动
void R_ADC_Create(void)
AD转换模块初始化
r_cg_adc.c
void R_WDT_Restart(void)
WDT复位(WDT)函数
r_cg_wdt_user.c
(void)LOGIC_OPT(void)
档位逻辑处理运算
logic_opt.c
重新建立的文件,添加用户函数
(void)Chair_OPT(void)
座椅逻辑处理运算
(void)BELL_OPT(void)
警告输出处理运算
__interrupt static void r_tau0_channel0_interrupt(void)
定时器通道0中断
r_cg_tau_user.c
由code generator生成,再添加相应的函数

点赞  2014-10-13 10:59
函数调用结构图:
1.png
点赞  2014-10-13 11:04
项目修改添加的函数功能说明
一、由code generator生成,并修改添加程序功能的函数:
函数名:
void main(void)
说明:
主函数
输入:

输出:

完成功能:
1.系统模块功能初始化
2.50mS运行一次AD转换、逻辑运算函数:LOGIC_OPT()
3.250mS运行一次:
●座椅检测、逻辑运算函数:Chair_OPT()
●警告输出运算函数:BELL_OPT()
●看门狗复位函数:R_WDT_Restart()

函数名:
void R_MAIN_UserInit(void)
说明:
主体硬件初始化函数
输入:

输出:

完成功能:
上电运行一次此函数,由void main(void)调用;
1.硬件模块初始化函数:hdwinit()
2.开启定时器通道0工作函数:R_TAU0_Channel0_Start();
3.开中断。

函数名:
__interrupt static void r_tau0_channel0_interrupt(void)
说明:
定时器通道0间隔定时中断函数
输入:

输出:

完成功能:
定时器通道050mS产生间隔中断函数;
1.设置50mS中断标志;
2.Timer_50ms_ADD累加、判断产生250mS中断标志。

点赞  2014-10-13 13:09
二、新建logic_opt.c文件,并完成OPS功能所用到的函数
函数名:
void LOGIC_OPT(void)
说明:
AD转换,逻辑运算函数
输入:

输出:

完成功能:
每50mS运行一次,由void main(void)调用;
1.对AD通道0进行8位结果转换,并与上次转换结果进行累加平均;
2.判断平均后的数据,≥7.5V电压输入时,档位状态指示灯熄灭;<6.5V电压输入时,档位状态指示灯显示,同时清除座椅锁定位;

函数名:
void        Chair_OPT(void)
说明:
座椅开关检测,逻辑运算及输出信号函数
输入:

输出:

完成功能:
250mS运行一次,由void main(void)调用;
根据座椅开关信号、座椅相关标志位进行座椅逻辑运算及输出信号函数。
完成本项目硬件篇所述的OPS逻辑功能:
1.座椅开关正常接通,座椅断开指示灯熄灭,初始化相应标志位及行驶电磁阀控制输出正常工作。
2.座椅开关断开持续2秒后,座椅断开指示灯亮,设置标志位Chair_ALARM
3.座椅开关断开持续5秒后,行驶电磁阀控制输出指示灯熄灭,设置标志位Chair_LOCKChair_UP
4.座椅开关断开持续5秒后再次接通,若档处于在档状态,则仍禁止行驶电磁阀控制输出,设置标志位GEAR_ALARM

函数名:
void        BELL_OPT(void)
说明:
根据相关警告位,设置警告信号运算并输出函数
输入:

输出:

完成功能:
250mS运行一次,由void main(void)调用;
根据Chair_ALARMGEAR_ALARMBELL_Runing标志位及输出计数寄存器BELL_Cont,完成警告信号状态运算并输出。

点赞  2014-10-13 13:18
使用瑞萨开发板完成叉车OPS(精简)控制器设计(软件篇)
使用瑞萨开发板完成叉车OPS(精简)控制器设计-软件篇.pdf (185.57 KB)
(下载次数: 4, 2014-10-13 13:19 上传)
点赞  2014-10-13 13:19
项目调试:
一、初始通电图片:
为模拟无档位信号输入(电压),座椅开关默认闭合状态时,初始的显示图片。
其中:档位状态指示灯亮(白色),行走电磁阀控制输出指示灯亮(黄色)。
1-调试初始界面
点赞  2014-10-13 16:07
使用瑞萨R7F0C80212ESP开发板完成叉车OPS(精简)控制器设计 调试视频1 此视频显示的是:在座椅开关默认接通的情况下,根据档位信号输入电压与否 来显示档位状态指示灯. 本帖最后由 dingzy_2002 于 2014-10-14 10:55 编辑
点赞  2014-10-14 10:40
使用瑞萨R7F0C80212ESP开发板完成叉车OPS(精简)控制器设计 调试视频2
    此视频演示的是项目系统在无档位信号时,座椅开关断开5秒以上时,整个过程中指示灯的显示状态。

点赞  2014-10-14 11:16
使用瑞萨R7F0C80212ESP开发板完成叉车OPS(精简)控制器设计 调试视频3(联合调试视频)
    此视频演示的是叉车OPS系统在有档位信号时,座椅开关断开5秒以上时,整个过程中指示灯的显示状态,也包括无档位信号时,座椅开关断开5秒以上时,整个过程中所有指示灯的显示状态。


点赞  2014-10-14 11:29
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复