硬件設計怎么做,設計軟件流程分析?( 三 )


現象六:這個CPU帶有DMA模塊 , 用它來搬數據肯定快
點 評:真正的DMA是由硬件搶占總線后同時啟動兩端設備 , 在一個周期內這邊讀 , 那邊些 。但很多嵌入CPU內的DMA只是模擬而已 , 啟動每一次DMA之前要做 不少準備工作(設起始地址和長度等) , 在傳輸時往往是先讀到芯片內暫存 , 然后再寫出去 , 即搬一次數據需兩個時鐘周期 , 比軟件來搬要快一些(不需要取指令 ,  沒有循環跳轉等額外工作) , 但如果一次只搬幾個字節 , 還要做一堆準備工作 , 一般還涉及函數調用 , 效率并不高 。所以這種DMA只對大數據塊才適用 。
四:信號完整性
現象一:這些信號都經過仿真了 , 絕對沒問題
點 評:仿真模型不可能與實物一模一樣 , 連不同批次加工的實物都有差別 , 就更別說模型了 。再說實際情況千差萬別 , 仿真也不可能窮舉所有可能 , 尤其是串擾 。曾經 有一教訓是某單板只有特定長度的包極易丟包 , 最后的原因是長度域的值是0xFF , 當這個數據出現在總線上時 , 干擾了相鄰的WE信號 , 導致寫不進RAM 。其 它數據也會對WE產生干擾 , 但干擾在可接受的范圍內 , 可是當8位總線同時由0邊1時 , 附近的信號就招架不住了 。結論是仿真結果僅供參考 , 還應留有足夠的余 量 。
現象二:100M的數據總線應該算高頻信號 , 至于這個時鐘信號頻率才8K , 問題不大
點評:數據總線的值一般是由控制信號或時鐘 信號的某個邊沿來采樣的 , 只要爭對這個邊沿保持足夠的建立時間和保持時間即可 , 此范圍之外有干擾也罷過沖也罷都不會有多大影響(當然過沖最好不要超過芯片 所能承受的最大電壓值) , 但時鐘信號不管頻率多低(其實頻譜范圍是很寬的) , 它的邊沿才是關鍵的 , 必須保證其單調性 , 并且跳變時間需在一定范圍內 。
現象三:既然是數字信號 , 邊沿當然是越陡越好
點評:邊沿越陡 , 其頻譜范圍就越寬 , 高頻部分的能量就越大;頻率越高的信號就越容易輻射(如微波電臺可做成手機 , 而長波電臺很多國家都做不出來) , 也就越容易干擾別的信號 , 而自身在導線上的傳輸質量卻變得越差 , 因此能用低速芯片的盡量使用低速芯片 ,  。
現象四:為保證干凈的電源 , 去偶電容是多多益善
點評:總的來說去偶電容越多電源當然會更平穩 , 但太多了也有不利因素:浪費成本、布線困難、上電沖擊電流太大等 。去偶電容的設計關鍵是要選對容量并且放對地方 , 一般的芯片手冊都有爭對去偶電容的設計參考 , 最好按手冊去做 。
現象五:信號匹配真麻煩 , 如何才能匹配好呢?
點 評:總的原則是當信號在導線上的傳輸時間超過其跳變時間時 , 信號的反射問題才顯得重要 。信號產生反射的原因是線路阻抗的不均勻造成的 , 匹配的目的就是為了 使驅動端、負載端及傳輸線的阻抗變得接近 , 但能否匹配得好 , 與信號線在PCB上的拓撲結構也有很大關系 , 傳輸線上的一條分支、一個過孔、一個拐角、一個接 插件、不同位置與地線距離的改變等都將使阻抗產生變化 , 而且這些因素將使反射波形變得異常復雜 , 很難匹配 , 因此高速信號僅使用點到點的方式 , 盡可能地減少 過孔、拐角等問題 。
五:可靠性設計
現象一:這塊單板已小批量生產了 , 經過長時間測試沒發現任何問題
點評:硬件設計和芯片應 用必須符合相關規范 , 尤其是芯片手冊中提到的所有參數(耐壓、I/O電平范圍、電流、時序、溫度PCB布線、電源質量等) , 不能光靠試驗來驗證 。公司有不 少產品都有過慘痛的教訓 , 產品賣了一兩年 , IC廠家換了個生產線 , 咱們的板子就不轉了 , 原因就是人家的芯片參數發生了點變化 , 但并沒有超出手冊的范圍 。如 果你以手冊為準 , 那他怎么變化都不怕 , 如果參數變得超出手冊范圍了還可找他索賠(假如這時你的板子還能轉 , 那你的可靠性就更牛了) 。

推薦閱讀