当前位置:网站首页>【FPGA】串口以命令控制温度采集
【FPGA】串口以命令控制温度采集
2022-06-24 22:15:00 【机智的橙子】
一.任务要求
能够通过串口向FPGA芯片发送命令,以命令控制FPGA接收温度传感器数据,以及串口发送和数码管显示。该项目以前面学习的ds18b20温度传感器为例。
二.设计思路
①温度传感器返回数据是二进制的形式,为了方便后续处理,我们需要先将数据转换为bcd码的形式。
BCD码(Binary-Coded Decimal),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。
在这里,我们采用的是8421BCD码,也就是采用4位二进制的前十组代码表示0~9。
方法是:将要转的二进制值向左移动,一旦表示一位十进制数的4位二进制的值大于4,就加上3。
具体如下:
②串口以ASCII的形式收发数据,所以我们需要两个模块用于ASCII码和16进制数据转换。
根据下表对串口输入数据进行操作:
ASCII转16进制数据(关键代码):
这部分用于将串口发送的数据转换成我们需要的16进制命令,而该命令以两个16进制数据组成,所以该模块需要一次输出连续处理的两个数据。
[email protected](posedge clk or negedge rst_n)begin
if(!rst_n)begin
tmp <= 0;
end
else if(din >= 8'h30 && din <= 8'h39)begin//0~9
tmp <= din - 8'h30;
end
else if(din >= 8'h41 && din <= 8'h46)begin//A~F
tmp <= din - 8'h37;
end
else if(din >= 8'h61 && din <= 8'h66)begin//a~f
tmp <= din - 8'h57;
end
end
16进制转ASCII(关键代码):
[email protected](posedge clk or negedge rst_n)begin
if(!rst_n)begin
data <= 0;
end
else if(din_vld)begin
data <= din + 8'h30;//16进制数与相应ASCII数相差8'h30
end
end
③命令解析,接收到串口发送的相关命令后,对数码管,串口发送以及温度采集的使能信号开启。
这里使用了一个帧结构,包含帧头,命令,帧尾。简单用一个状态机(含有三个状态,对应帧结构)
④设计一个控制模块,例化上述模块,对接收的串口数据进行转换,命令解析,温度传感器的数据进行转换,将各个使能信号传递给相应模块。
三.代码实现
略
边栏推荐
- Some Modest Advice for Graduate Students - by Stephen C. Stearns, Ph.D.
- Unity C# 网络学习(六)——FTP(二)
- 入职一家新公司,如何快速熟悉代码?
- Search two-dimensional matrix [clever use of bisection + record solution different from inserting bisection]
- Multi modal data can also be Mae? Berkeley & Google proposed m3ae to conduct Mae on image and text data! The optimal masking rate can reach 75%, significantly higher than 15% of Bert
- Logminer database log mining
- DDD概念复杂难懂,实际落地如何设计代码实现模型?
- tmux 如何自定义背景颜色 | How does the tmux color palette work?
- Android物联网应用程序开发(智慧园区)—— 设置传感器阈值对话框界面
- Multimodal emotion recognition_ Research on emotion recognition based on multimodal fusion
猜你喜欢

Abnova CSV magnetic beads description in Chinese and English
![Search two-dimensional matrix [clever use of bisection + record solution different from inserting bisection]](/img/c9/afc03afd477bbfdd3c0dc54bacfd2d.png)
Search two-dimensional matrix [clever use of bisection + record solution different from inserting bisection]

TSDB在民机行业中的应用

DataEase模板市场正式发布

Experience of epidemic prevention and control, home office and online teaching | community essay solicitation

jwt

Hands on data analysis data modeling and model evaluation

(CVPR 2020) Learning Object Bounding Boxes for 3D Instance Segmentation on Point Clouds

(CVPR 2020) Learning Object Bounding Boxes for 3D Instance Segmentation on Point Clouds
![全排列II[存在相同元素去重 + 标准回溯]](/img/d3/93ddb49e580be60be4f056f141b782.png)
全排列II[存在相同元素去重 + 标准回溯]
随机推荐
Full arrangement ii[duplicate removal of the same elements + standard backtracking]
最长连续序列[扩散法+空间换时间]
监听 Markdown 文件并热更新 Next.js 页面
linux上查看mysql的密码_Linux下MySQL忘记密码「建议收藏」
Left hand dreams right hand responsibilities GAC Honda not only pays attention to sales but also children's safety
Basic layout -qhboxlayout class, qvboxlayout class, qgridlayout class
‘distutils‘ has no attribute ‘version
Unity C # e-learning (VI) -- FTP (I)
Convert string array to list collection
TSDB在民机行业中的应用
谈谈飞书对开发工作的优势 | 社区征文
中金证券靠谱吗?开证券账户安全吗?
An Chaoyun: "one cloud with multiple cores" supports the implementation of the national information innovation government cloud
多模态数据也能进行MAE?伯克利&谷歌提出M3AE,在图像和文本数据上进行MAE!最优掩蔽率可达75%,显著高于BERT的15%
Abnova BSG monoclonal antibody description in Chinese and English
Award winning interface control development kit devaxpress v22.1 officially announced
Chinese and English instructions of Papain
Multimodal emotion recognition_ Research on emotion recognition based on multimodal fusion
字符串常用方法
Listen to the markdown file and hot update next JS page