设备类型
1.GPIO或門電路類 ,串口等協議類接口,i2c等是通過內存控制器被CPU操控的,cpu通過發地址給內存控制器,然后內存控制器根據不同的地址去
選擇對應的寄存器
?
2.norflash、SDRAM、網卡,是cup直接操作的,他們的原理圖上有地址總線,數據總線和CPU相連接,可以被cup直接操控
但他們是共用地址和數據總線,怎么判斷是哪個設備發生請求呢?,他們是通過片選引腳來區別的。
像SDRAM,DM9000,NORflash的片選分別為nGCS6,nGCS4,nGCS0,n的意思是低電平有效。
哪這些片選又是誰來控制的呢,剛剛是地址和數據是cpu直接控制。片選這個家伙還是由內存控制器來
CPU還是通過發不同的片選地址來選擇不同的片選。只有被選擇的芯片才能工作
當使用NORflash時,CPU發出的地址在0x00000000-0x08000000直接,nGCS0為低電平。其他同理
一個片選可選擇的地址范圍為0x08000000=134217728=128*1024*1024*=128M=2^7*2^20(1M=2^20)=2^27;
所以至少需要27條地址總線去選擇,只有addr.-addr26
如果要訪問上面第2點所列的設備,cpu發出32位的地址給內存控制器,然后內存控制同時發出addr0-addr26,和片選信號,cpu確實是發出了32位的,只是cpu控制器用不了那么多罷了.
上面我們只說了怎么選中芯片,還沒說怎么讀寫呢,
?
?
?
?
?
上面從上往下是網卡,norflash,sdram的原理圖,網卡,norflash有讀使能和寫使能一共2根線,LnOE代表讀芯片,LnWE代表寫芯片。sdram只有一個LnWE,意思是低電平是寫使能,高電平是讀使能。
?
?
上面說的這些設備都參與CPU的統一編址(地址)范圍內。
nanflash沒有,
?
?
看只有數據總線,沒有地址總線與nandflash芯片相連,既然沒有地址總線,那他的片選是怎么被選擇的呢
nandflash有nandflash控制器,cpu有用到NANDflash時,他就會訪問nand控制器,然后nand控制器才會發出片選
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
- 上一篇: pyspark 数据框 更改大小写_英文
- 下一篇: Hie with the Pie