串口命令封装,代码实现思想:
1. 对接收的串口数据(8bit)进行移位
2. 识别封装命令,输出配置使能信号
3. 计数(计数器cnt),使计数时间大于一个命令的配置时间,当达到计数值cnt_x时,输出有效信号并对计数器清零
4. 输出flag信号:开始配置时,将flag信号拉高,配置完成后拉低
5. 计数(计数器cnt_case),当flag为高电平,并且计数器达到计数值cnt_x时,对计数器cnt_case进行加1
6. 当flag为高电平时,对不同的case值,输出不同的命令
module command_package
(
input clk ,///25M系统时钟
input rst_n ,
input [7:0] rx_data ,
input rx_int ,
output reg o_adc_cfg_init_data_en ,//配置ADC初始化数据
output reg [23:0] o_adc_cfg_init_data //配置ADC初始化数据使能信号
);
reg [127:0] s_data_buf ; // 定义命令位数16*8你epldwr 0x10 0x10
reg [ 7:0] s_data ; //数据reg
reg [2:0] rx_int_dly ;
parameter cnt_250 =1250000 ;//计数为250
reg s_adc_cfg_en ;//配置ADC串口命令初始信号
reg cnt_adc_cfg_250_vld ;
reg [21:0] cnt_adc_cfg_250 ;//计数器,每25个时钟进行清零
reg [4:0] cnt_adc_cfg_case ;//计数器,每25个时钟进行计数
reg s_adc_cfg_start ;//开始判断执行case语句信号
// reg s_adc_cfg_vld ;//输出ADC数据
标签:cnt,封装,cfg,命令,计数器,adc,串口,data,reg
From: https://blog.csdn.net/qq_19000141/article/details/142299468