描述
<div class="document">
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 1、项目功能介绍</h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">电动汽车越来越多,维修保养生产需要测试电池的內阻,而高耐压的电池內阻测试仪价格较高,于是自己设计一个,可以测试400V的高压电池,借助瑞萨R7FA2E1A7单片机的高性能ADC,內阻最大可显示40000字,最小分辨率0.01毫欧,两个量程分别是4欧和0.4欧,4欧档位最小分辨0.1毫欧,0.4欧档位最小分辨0.01毫欧,整机功耗20毫安以下,可测电池內阻和开关电源市电整流后的大滤波电容的ESR,并且不用放电。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*2、项目属性</h3>
<p> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">原创首次开源</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 3、开源协议</h3>
<p> </p>
<p>GPL 3.0</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*4、硬件部分</h3>
<p>电源:</p>
<p><img src="//image.lceda.cn/pullimage/wedRo4DKFIl6faz1IzTBC3Y8uDRtk1neWtIt58SS.png" alt="" width="1101" height="765"></p>
<p> </p>
<p>电源采用单节18650电池供电,电源部分包含锂电池充电和保护电路</p>
<p> </p>
<p> </p>
<p>主控</p>
<p><img src="//image.lceda.cn/pullimage/UBrp5Oh9J8jQYRhBCrvktIfS7NxJLgoDoPdagI05.png" alt="" width="1200" height="721"></p>
<p>瑞萨R7FA2E1A7单片机</p>
<p> </p>
<p> </p>
<p>显示:</p>
<p> </p>
<p><img src="//image.lceda.cn/pullimage/W9YSqpA1xPgqXs07lSRZcHuMfVeyEE8wypc4iOgL.png" alt="" width="867" height="665"></p>
<p>采用COG12864显示</p>
<p> </p>
<p> </p>
<p>pwm滤波电路:</p>
<p><img src="//image.lceda.cn/pullimage/fPSBjywmiXWSEPDwPLe7Dr4XqQquX4GTjSGp08Le.png" alt="" width="688" height="513"></p>
<p>单片机P400口输出一路1KHZ 方波,进入RC滤波器过滤成正弦波,注R15、R16未焊接,设想用来扩展量程用的冗余设计。</p>
<p> </p>
<p> </p>
<p> </p>
<p>恒流和保护电路部分:</p>
<p> </p>
<p><img src="//image.lceda.cn/pullimage/MTBIrXDiC6udM1ljMJbJO6Lpc6ntxFMZyrVusyNw.png" alt="" width="1198" height="579"></p>
<p>1KHZ经过PWM滤波后的正弦波通过C7、R3、R13抬高到VCC的一半进入R10.1跟随器,接着进入恒流电路,R4、R5、R12是电流采样电阻,设置为恒流12毫安。Q1和Q2代替二极管保护运放,C100、C101为隔直电容采用的是安规电容,L1-L10限制电流变化速度增加保护电路可靠性,R11采用线绕电阻防止烧毁,D1 TVS将电压限制在一定范围,整个保护电路可耐压400V,尽管没有火花减小电路但是火花不是太明显。</p>
<p> </p>
<p>调试:开尔文夹子夹住1欧电阻,用万用表交流毫伏档测1欧电阻两端,电压应为12毫伏左右,波形为标准正弦波。</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>测试夹部分</p>
<p><img src="//image.lceda.cn/pullimage/1qyGD23Tb5GFjT1htrFRgZSkzW3HmXMbTU2QE6TG.png" alt="" width="603" height="726"></p>
<p>采用四线测量排除导线电阻影响,H1、H2一个夹子,H3、H4一个夹子,H1、H3电流回路最好两根线互相缠绕,H2、H4通过C16、C31隔离电池直流并且把正弦波信号抬高1.65V,R18、R38为限流电阻,Q3、Q4、Q5、Q6用三极管代替二级管。</p>
<p> </p>
<p> </p>
<p> </p>
<p>放大电路</p>
<p><img src="//image.lceda.cn/pullimage/XT4R2jFhoRMGcpTf6ZzfMgla993ehAdHAfuFfETM.png" alt="" width="489" height="576">三运放仪表放大器,放大21倍</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/z24r3nvPYialgz8feqRnATTiwIaRsUSuR98MqRaA.png" alt="" width="624" height="732">采用先衰减后放大,U4模拟开关控制衰减10倍或直通,U12.2十倍放大电路,最后进入单片机ADC口。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*5、软件部分</h3>
<p> </p>
<p> </p>
<p>程序采用纯汇编编写,编译器ARM-NONE-EABI,可以直接到ARM官方网站下载,也可以自己下载GNU BINUTILS自己编译 </p>
<p>编译命令</p>
<p><code></code></p>
<ol>
<li> ../configure --target=arm-none-eabi --prefix=/home/yjmwxwx/220g/ruanjian/chengxu/arm/bianyiqi/bintuils/</li>
<li> make</li>
<li> make install</li>
</ol>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">开发工具:</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">附件里面的1.s是源代码,1.bin是固件</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">EMACS编辑器</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/fgBerBM9ZxF7bk5XdZAMCzCrr6XZm0baTJ7UVYVP.png" alt="" width="896" height="699"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">编译器,输入make就可以了</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/oF4E3sAKWLtkhcCqTd7fNAVwwX6gWxMmCw5HvWWB.png" alt="" width="896" height="699"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">JLINK 命令行调试工具,我用的是JLINK V9 的SWD模式,需要连接四根线到板子,分别是GND、SWDIO、SWCLK、VCC。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">型号输入R7FA2E1A7,模式选择SWD</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">烧写命令</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><code>loadbin /home/yjmwxwx/1.bin 0</code></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/1fWEruSFjk5F52fkCN3rc3uiMtNZiaKTzCpVeffg.png" alt="" width="1200" height="875"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">软件涉及单片机部分的有IO、GPT、ADC、DTC、DATA FLASH、SCI_SPI几个部分,涉及信号处理的主要是DFT和滑动滤波器。单片机定时器输出一路1KHZ PWM,另外一个定时器设置25K频率触发ADC采样,采集的数据通过DTC传输250点到RAM,SYSTICK定时器设置0.01秒中断一次,进入中断先算250点的DFT,得到实部虚部各进入300点滑动滤波器,得到的数据还需要旋转相位用来只显示阻抗的电阻部分。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">信号处理核心部分程序:</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">GPT定时器设置25K频率用来触发ADC,SYSTICK定时器设置0.01秒中断一次处理ADC采集的数据。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">定时器输出1KHZ PWM</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/ctJ6xlxOv2HQv0zMK18a2A3BgiIm21ocG5iYXrgx.png" alt="" width="808" height="554"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">ADC设置,通过定时器触发ADC采样</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/CPCtHQpM53hB5PQElHslFUqSTpmQObLKyT5q9k2I.png" alt="" width="634" height="464"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">用来触发ADC采样的定时器设置25K频率,另外设置SYSTICK定时器0.01秒中断一次处理ADC采样数据</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/5QNjfjNVHJBR1yMu60Sd47WRxNyzypXB2m2pChDf.png" alt="" width="814" height="754"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">设置DTC传输ADC采集到的数据,一共传输250个32位循环模式,25K采样频率采集250点保证采集到的数据相位锁定方便后面处理采集到的数据。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/8S0QQq7nA7pjZIn8MkGrQUn9UDWWuLHBQUU3hiuB.png" alt="" width="723" height="702"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">进入SYSTICK中断后先算DFT得到实部虚部,再把这两个数据各自放到300点滑动滤波器</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/XUD2aMBYkNTxzDGcS340fs4r3py1Spzl4jpMb90h.png" alt="" width="435" height="514"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">滑动滤波器</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/iOfFo8vEsqb1fynHs4qnVvhanjpfggiVWBsTWnfN.png" alt="" width="722" height="823"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">DFT计算一部分程序</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/8bhXGVS9Mn5v2K5kZtdKwO2vRvIpDY7BvYyyQwGz.png" alt="" width="601" height="629"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">DFT计算用COS和SIN查询表生成程序,格式为Q15定点数,N=500是数据点数,M=10是算第10个点。采样率25000HZ除250点=100HZ,每个点100HZ,第10个点就是我们需要的1KHZ</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><code></code></p>
<p>#include <br>#include <br>#include <br>void main() {<br> float m,pi,sr,si;</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><code></code></p>
<p> int rr,ii, n,i;<br> n=500;<br> m=10;<br> pi=3.141592653; <br> for(i=0;i</p></div>
评论(85)