2013-12-15 70 views
0

ASCII转换我想实现一个VHDL莫尔斯电码,以ASCII转换器,然后通过UART传输是ASCII字符PC终端。我已经完成了UART部分。摩尔斯电码使用VHDL

但我不知道如何实现转换器的一部分。问题在于输入莫尔斯码的符号率不同。我想检测点,短划线,字符空间和单词空间。

请帮我在下面的实现:

  1. 检测莫尔斯电码符号的可变符号率
  2. 二叉树遍历莫尔斯电码树找到对应的ASCII字符。
+1

为什么用VHDL这个?听起来像一个微控制器工作对我来说! –

+1

让我们来看看你试过的代码 – Bull

回答

1

看起来好像你打算在两个阶段做转换器,这听起来像一个体面的想法 - 解码点,破折号和暂停的第一阶段,将它们组装成字符的第二阶段。

对于第一个阶段,您需要为您的输入定义一些最小和最大时间 - 也就是说,最短和最长的点/短划线/等可以持续多长时间(我认为它有一些这个标准?)。

随着这些定时应该有可能使用一个计数器和边缘检测器来解码输入的莫尔斯信号。

对于第二个阶段,你可以创建一个有限状态机,或者甚至只是一个查找表为一个字符的输入点和划解码,并沿着你的UART发送此。

+0

莫尔斯的符号长度是1,3和7个时间单位;人类的键控速率变化超过3倍。为了强大的实现,符号解码器应该为传输速度提供一个参数。理想情况下,它会根据数据流调整该参数,如同人类操作员一样。 – gwaigh

-2

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

+0

这不是一个答案:它只是一些外部代码的链接。链接随着时间而死亡。 StackOverflow仍然是信息的来源:例如,这个问题在三年前就已经提出。您的答案可能与提问者无关,但可能适用于其他人。所以把相关信息放在你的答案中。阅读[“如何写出一个很好的答案”](https://stackoverflow.com/help/how-to-answer) – JHBonarius