首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用vhdl实现ASCII转换器的Morse码

用vhdl实现ASCII转换器的Morse码
EN

Stack Overflow用户
提问于 2013-12-15 10:10:35
回答 2查看 2K关注 0票数 0

我想用vhdl语言实现一个莫尔斯码到ASCII转换器,然后通过UART将ASCII字符传输到PC终端。我已经完成了UART部分。

但我不知道如何实现转换器部分。问题是输入莫尔斯码符号率的变化。我想检测点,破折号,字符空间和单词空间。

请帮助我完成以下工作:

  1. 可变符号率莫尔斯码码元的检测
  2. 二进制搜索树遍历Morse代码树以找到相应的ASCII字符。
EN

回答 2

Stack Overflow用户

发布于 2013-12-15 15:14:44

似乎你正计划分两个阶段进行转换,这听起来是个不错的主意--第一阶段是解码点、破折号和停顿,第二阶段是把这些东西组装成字符。

对于第一阶段,您需要为您的输入定义一些最小和最大的时间--也就是说,点/破折号/ etc可以持续的最短和最长的时间是什么(我想这有一些标准吗?)

有了这些时间,应该可以使用计数器和边缘检测器来解码您的输入莫尔斯信号。

对于第二阶段,您可以创建一个有限状态机,或者甚至只是一个查找表来解码单个字符的输入点和破折号,并将其发送到您的UART。

票数 1
EN

Stack Overflow用户

发布于 2017-06-21 00:45:01

您需要创建一个模块,该模块对您的输入进行采样,并从您记录的模式中使用一些固定的模式来输出相应的字母。您需要研究您接收到的信号的宽度,以估计您的抽样率应该是多少。您可以尝试阅读和理解github上的以下共享代码。https://github.com/altugkarakurt/Morse-Code-Converter,它将执行产生morse码的反向过程。这可以用作你的莫尔斯阅读器的测试生成器。从Morse检测器提取的代码ASCII可以输入FIFO,这是一个标准电路,并连接到您的UART。如果FIFO未满,则Morse检测器将ASCII写入FIFO,而UART从FIFO中读取ASCII并将其传输到UART。FIFO充当缓冲区。如果你需要一些标准的UART代码,看看Xilinx网站,它有一个UART部分的Microblaze设计,它是非常简单的接口。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20593380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档