打印
[学习资料]

基于 DSPIC 的双频探鱼仪系统设计

[复制链接]
楼主: wangjiahao88
手机看帖
扫描二维码
随时随地手机跟帖
21
wangjiahao88|  楼主 | 2022-12-3 11:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览

使用特权

评论回复
22
wangjiahao88|  楼主 | 2022-12-3 11:04 | 只看该作者

使用特权

评论回复
23
wangjiahao88|  楼主 | 2022-12-3 11:14 | 只看该作者
发射电路测试
由于发射电路输出的电压幅度较大,我们使用电阻分压法对电压进行衰减。输出电压衰
减50倍后的波形如图3.13所示。当 MOS 管导通和关断的瞬间,变压器初级部分的电感都将产
生自感电动势阻碍外部电压对电流的改变,其值略小于 VCC,电压方向与原方向相反。VCC
实测电压为16.5V,变压器匝数比为30:150,设计的理论输出波形的电压峰峰值为:
16.5*5*2=165V。示波器读出的实际输出波形峰峰值为:6.5格*500mv*50=162.5V,相对误差
约为1.5%。该误差是由变压器变比误差和人为读数误差等造成。

使用特权

评论回复
24
wangjiahao88|  楼主 | 2022-12-3 11:17 | 只看该作者

使用特权

评论回复
25
wangjiahao88|  楼主 | 2022-12-3 11:17 | 只看该作者

接收电路测试
超声波换能器接收到反射信号,经接收电路三级处理之后,原先几个毫伏的微弱接收信
号被放大到适合芯片 AD 的电压范围。电路的实测接收波形如图3.14所示。接收电路最大输
出电压幅度约为2.9 V,略小于 DSPIC 芯片3.3V 的 AD 范围,满足预先的设计要求。


使用特权

评论回复
26
wangjiahao88|  楼主 | 2022-12-3 11:18 | 只看该作者

系统软件构成
系统软件采用模块化设计的方式,主要包含参数存取模块、控制模块、算法模块和通信模块,如图 4.1 所示。


使用特权

评论回复
27
wangjiahao88|  楼主 | 2022-12-3 11:19 | 只看该作者

模块化运行流程
系统软件各模块之间是相互联系的,按照一定的顺序运行。如图 4.2 所示,系统开机之后,
首先进行的是软硬件的初始化,使软硬件都处于运行就绪状态,该过程包括系统时钟配置,
各外设的初始化配置等。接着系统按照软件模块之间的运行顺序有序运行,直到系统关机。


使用特权

评论回复
28
wangjiahao88|  楼主 | 2022-12-3 11:20 | 只看该作者

模块化运行的源程序

int main(void)
{
Osc_Init(); //硬件初始化
UART1_Init();
Adc1_Init();
Adc2_Init();
Pwm_Init();
Gpio_Init();
Rtsp_Init();
Get_Config_Num(); //读取参数
While(1)
{
Config_Assign(); //参数赋值
Set_Path(MIDDLE_200K);
delay_ms(10); //等待模拟开关稳定
Pwm_Emit(MIDDLE_200K,Pwm_Count,Duty_Rate);
AD_WAVE(2000,0);
while(AD_Convert_Flag==CONVERTING); //等待采样完毕
Set_Path(MIDDLE_76K);
delay_ms(10);
Pwm_Emit(MIDDLE_76K,Pwm_Count,Duty_Rate);
AD_WAVE(2000,2000);
while(AD_Convert_Flag==CONVERTING);
Set_Path(LEFT_200K);
delay_ms(10);
Pwm_Emit(LEFT_200K,Pwm_Count,Duty_Rate);
AD_WAVE(2000,4000);
while(AD_Convert_Flag==CONVERTING);
Set_Path(RIGHT_200K);
delay_ms(10);
Pwm_Emit(RIGHT_200K,Pwm_Count,Duty_Rate);
AD_WAVE(2000,6000);
while(AD_Convert_Flag==CONVERTING);
Power=AD_POWER(); //采样电源电压
Temperature=AD_TEMP(); //采样温度电压
AD_Range=Algorithm_Middle_200k(BUFFER_A,2000,24); //采样周期24us
Algorithm_Middle_76k(BUFFER_A+2000,AD_Range,24);
Algorithm_Left_200k(BUFFER_A+4000,AD_Range,24);
Algorithm_Right_200k(BUFFER_A+6000,AD_Range,24);
Find_Fish_Group(24); //算出鱼群
Power_State=Algorithm_Power(Power); //算出当前电池电压状态
Real_Temperature=Algorithm_Temperature(Temperature); //算出当前温度
Communication(); //信息通信

}

使用特权

评论回复
29
wangjiahao88|  楼主 | 2022-12-3 11:20 | 只看该作者

电量采集

探鱼仪系统的电量采集硬件在上一章已经介绍,转化过的电压需要用微控制器的 ADC 外
设采集,然后计算得到所需的电量剩余信息。
DSPIC33F 系列芯片最多可以拥有 32 个 AD 输入通道。具有 2 个 ADC 模块(ADC1 和
ADC2),每个模块各拥有一组相关的特殊功能寄存器。通过改变 ADxCON1(x 为 1 或 2)寄
存器中的 AD12B 位域的值,可以使 ADC 模块的采样精度在 10 位和 12 位之间切换。芯片默
认配置的 10 位采样模式拥有 4 个 AD 通道,而 12 位采样模式只拥有 1 个 AD 通道。
电量采集使用的是 ADC2 模块,为了提高测量的精度,选择 12 位、1 采样保持模式。由
于电量采集跟温度采集共用 ADC2 模块,我们的 ADC2 初始化程序只初始化了一部分的配置,
其余的部分配置将在实际采集的时候再配置,如配置采集输入引脚,这样就能做到同一模块
在两个不同引脚之间切换。电量采集和温度采集共用的 ADC2 初始化程序伪代码如下所示。

void Adc2_Init(void)
{
AD2CON1 寄存器的 FORM 位域赋值为 0,配置数据输出格式为无符号整形。
AD2CON1 寄存器的 SSRC 位域赋值为 7,配置采样时钟源为内部计数器,自动结束采样
并启动转换。
AD2CON1 寄存器的 ASAM 位域赋值为 1,配置为连续转换模式。
AD2CON1 寄存器的 AD12B 位域赋值为 1,使用 12 位转换模式。
AD2CON1 寄存器的 SIMSAM 位域赋值为 0,配置为按顺序依次采样。
AD2CON2 寄存器的 CHPS 位域赋值为 0,选择 CHO 通道。
AD2CON3 寄存器的 ADRC 位域赋值为 0,ADC 时钟由系统时钟提供。
AD2CON3 寄存器的 SAMC 位域赋值为 12,采样时间为 12TAD。
AD2CON3 寄存器的 ADCS 位域赋值为 39,转换时钟 TAD=(1+39)*TCY。
AD2CON2 寄存器的 CH0NA 位域赋值为 0,配置通道 0 的反相输入为 VREF-。
}

使用特权

评论回复
30
wangjiahao88|  楼主 | 2022-12-3 11:28 | 只看该作者

使用特权

评论回复
31
wangjiahao88|  楼主 | 2022-12-3 11:28 | 只看该作者
PWM 发射程序函数声名:void Pwm_Emit(uchar path,uchar pwm_count,uchar duty_rate);
由该声明可知,该函数拥有三个输入参数,即 path、pwm_count、duty_rate。其中 Path 参数
包含换能器方向和发射频率两个信息。当输入为 MIDDLE_200K 的时候,程序就会向中间换
能器发射 200KHz 的 PWM 波。PWM 发射的源程序如下所示:
void Pwm_Emit(uchar path,uchar pwm_count,uchar duty_rate)
{
if(path==MIDDLE_76K||path==LEFT_76K||path==RIGHT_76K)
P1TPER=FCY/76000-1;
else
P1TPER=FCY/200000-1;
if(path==MIDDLE_200K||path==MIDDLE_76K)
{
P1DC1=2*duty_rate*(P1TPER+1)/100;
P1DC2=0;
P1DC3=0;
}
else if(path==LEFT_200K||path==LEFT_76K)
{
P1DC1=0;
P1DC2=2*duty_rate*(P1TPER+1)/100;
P1DC3=0;
}
else if(path==RIGHT_200K||path==RIGHT_76K)
{
P1DC1=0;
P1DC2=0;
P1DC3=2*duty_rate*(P1TPER+1)/100;
}
P1TCONbits.PTOPS = pwm_count-1;
P1TCONbits.PTEN = 1;
}


使用特权

评论回复
32
wangjiahao88|  楼主 | 2022-12-3 11:29 | 只看该作者
波形特征值提取

超声波回波信号处理的第一步就是波形特征值提取,回波信号如图 4.10 所示

使用特权

评论回复
33
wangjiahao88|  楼主 | 2022-12-3 11:30 | 只看该作者

坐标定位



使用特权

评论回复
34
wangjiahao88|  楼主 | 2022-12-3 11:31 | 只看该作者

使用特权

评论回复
35
wangjiahao88|  楼主 | 2022-12-3 11:31 | 只看该作者

使用特权

评论回复
36
wangjiahao88|  楼主 | 2022-12-3 11:35 | 只看该作者
欢迎探讨

使用特权

评论回复
37
東南博士| | 2022-12-3 11:36 | 只看该作者
感觉像是学生的论文 发射 和 接收信号 不明白是怎么做的 也不知道是如何接收的

使用特权

评论回复
38
goodluck09876| | 2022-12-3 11:38 | 只看该作者
请问一下 这个算是 超声波 鱼群探测器吗?实际效果如何?

使用特权

评论回复
39
carefull3357dc| | 2022-12-3 12:00 | 只看该作者
不需要相控吗?感觉相控是不是可以改变扫描角度了?

使用特权

评论回复
40
EDA设计爱好者| | 2022-12-3 12:11 | 只看该作者
请问一下 这个有详细的 全部资料 可以分享吗?我的设计 也有类似的一部分需要指点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则