轉(zhuǎn)載--happysaisai的博客
為了實(shí)現(xiàn)人機(jī)交互,實(shí)現(xiàn)人機(jī)通信,方便學(xué)生做實(shí)驗(yàn),我們?cè)诨贏DSP-21369的實(shí)驗(yàn)教學(xué)系統(tǒng)上設(shè)計(jì)了一個(gè)鍵盤,它可以實(shí)現(xiàn)實(shí)驗(yàn)數(shù)據(jù)的輸入,由于鍵盤的多樣性,結(jié)合實(shí)際需要,首先需要進(jìn)行方案選擇工作。
(1)方案選擇
本實(shí)驗(yàn)系統(tǒng)采用4*4鍵盤,用于實(shí)驗(yàn)數(shù)據(jù)輸入。4*4鍵盤共有16個(gè)按鍵,排列成4行4列的矩陣形式的分布,如果使用I/O端口掃描的形式來(lái)實(shí)現(xiàn)對(duì)16個(gè)按鍵的識(shí)別,那么需要8個(gè)I/O端口,為了節(jié)省系統(tǒng)資源并且提高系統(tǒng)效率,本系統(tǒng)使用芯片控制鍵盤掃描,鍵盤掃描的產(chǎn)品選型有CH451和CH452兩種,它們都是鍵盤掃描控制芯片,都可以直接進(jìn)行鍵盤掃描,并且可以中斷,大大節(jié)省了系統(tǒng)時(shí)間。除此之外它們還有數(shù)碼管LED顯示驅(qū)動(dòng)的功能,驅(qū)動(dòng)數(shù)碼管LED顯示,并且能同時(shí)進(jìn)行顯示驅(qū)動(dòng)和鍵盤掃描,也能為日后擴(kuò)展提供方便。雖然CH451和CH452都可以支持3.3V和5V電源電壓,但是CH451用于3.3V時(shí)要外接震蕩電阻才能避免顯示閃爍,而且CH452兼容I2C的兩線接口,因此我們選定CH452,并且選擇2線串行接口,28腳貼片的封裝CH452A。
CH452的2線串行接口,包含2個(gè)主要信號(hào)線:串行數(shù)據(jù)時(shí)鐘輸入線SCL、串行數(shù)據(jù)輸入和輸出線SDA;以及2個(gè)輔助信號(hào)線:串行接口的地址選擇線ADDR、串行接口的中斷輸出線INT#。其中,SCL、ADDR 是帶上拉的輸入信號(hào)線,SCL用于提供串行時(shí)鐘,CH452 在其上升沿后的高電平期間從SDA輸入數(shù)據(jù),在其下降沿后的低電平期間從SDA輸出數(shù)據(jù),默認(rèn)高電平。
在SCL為高電平期間發(fā)生的SDA下降沿定義為串行接口的啟動(dòng)信號(hào),CH452只在檢測(cè)到啟動(dòng)信號(hào)后才接收并分析命令,所以在DSP I/O 引腳資源緊張時(shí),不但I(xiàn)NT#引腳可以省掉而改用SDA 引腳的脈沖中斷方式,而且在保持SDA引腳狀態(tài)不變的情況下,SCL 引腳也可以與其它接口電路共用。
(2)DSP和CH452芯片的連接
ADSP-21369的DPI接口有一個(gè)TWI接口,TWI接口完全兼容I2C總線標(biāo)準(zhǔn)。DSP通過(guò)串行接口控制CH452芯片,CH452的串行接口是由硬件實(shí)現(xiàn)的,DSP可以頻繁地進(jìn)行高速操作,而絕對(duì)不會(huì)降低CH452的工作效率。2線串行接口的中斷輸出INT#接DSP的外中 ,2線串行接口的數(shù)據(jù)時(shí)鐘SCL和DSP的DPI12_TWI_CLK相連,2線串行接口的數(shù)據(jù)輸入和輸出SDA和DSP的DPI11_TWI_DATA相連,此外由于I2C接口的輸出端是漏極開路或集電極開路,默認(rèn)高電平,所以必須在I2C接口處接上拉。鍵盤掃描期間,SEG7~SEG0 引腳都帶有內(nèi)部下拉電阻,用于行掃描輸入;DIG7~DIG0 引腳用于列掃描輸出。由于我們是4*4鍵盤,因此只選用SEG3~SEG0和DIG3~ DIG0 引腳。另外,在CH452的DIG0~DIG3引腳與鍵盤矩陣之間需要串接限流阻值2KΩ的電阻,是為了防止鍵被按下后在SEG信號(hào)線與DIG 信號(hào)線之間形成短路。鍵盤部分設(shè)計(jì)電路圖如下圖所示。

鍵盤設(shè)計(jì)電路圖
Keyboard connection circuit |