ASCII轉換我想實現一個VHDL莫爾斯電碼,以ASCII轉換器,然後通過UART傳輸是ASCII字符PC終端。我已經完成了UART部分。摩爾斯電碼使用VHDL
但我不知道如何實現轉換器的一部分。問題在於輸入莫爾斯碼的符號率不同。我想檢測點,短劃線,字符空間和單詞空間。
請幫我在下面的實現:
- 檢測莫爾斯電碼符號的可變符號率
- 二叉樹遍歷莫爾斯電碼樹找到對應的ASCII字符。
ASCII轉換我想實現一個VHDL莫爾斯電碼,以ASCII轉換器,然後通過UART傳輸是ASCII字符PC終端。我已經完成了UART部分。摩爾斯電碼使用VHDL
但我不知道如何實現轉換器的一部分。問題在於輸入莫爾斯碼的符號率不同。我想檢測點,短劃線,字符空間和單詞空間。
請幫我在下面的實現:
看起來好像你打算在兩個階段做轉換器,這聽起來像一個體面的想法 - 解碼點,破折號和暫停的第一階段,將它們組裝成字符的第二階段。
對於第一個階段,您需要爲您的輸入定義一些最小和最大時間 - 也就是說,最短和最長的點/短劃線/等可以持續多長時間(我認爲它有一些這個標準?)。
隨着這些定時應該有可能使用一個計數器和邊緣檢測器來解碼輸入的莫爾斯信號。
對於第二個階段,你可以創建一個有限狀態機,或者甚至只是一個查找表爲一個字符的輸入點和劃解碼,並沿着你的UART發送此。
莫爾斯的符號長度是1,3和7個時間單位;人類的鍵控速率變化超過3倍。爲了強大的實現,符號解碼器應該爲傳輸速度提供一個參數。理想情況下,它會根據數據流調整該參數,如同人類操作員一樣。 – gwaigh
你需要創建一個模塊,採樣輸入,並從錄製模式,使用一些固定的模式來進行相應的字母。你需要研究接收信號的寬度來估計你的採樣率應該是多少。您可以嘗試閱讀並理解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網站,它的接口非常簡單。
這不是一個答案:它只是一些外部代碼的鏈接。鏈接隨着時間而死亡。 StackOverflow仍然是信息的來源:例如,這個問題在三年前就已經提出。您的答案可能與提問者無關,但可能適用於其他人。所以把相關信息放在你的答案中。閱讀[「如何寫出一個很好的答案」](https://stackoverflow.com/help/how-to-answer) – JHBonarius
爲什麼用VHDL這個?聽起來像一個微控制器工作對我來說! –
讓我們來看看你試過的代碼 – Bull