探索Microchip PICDEM? LIN開(kāi)發(fā)板:硬件設(shè)計(jì)與編程實(shí)踐
在電子工程師的日常工作中,選擇合適的開(kāi)發(fā)板進(jìn)行項(xiàng)目開(kāi)發(fā)至關(guān)重要。Microchip的PICDEM? LIN開(kāi)發(fā)板為我們提供了一個(gè)優(yōu)秀的平臺(tái),用于探索LIN總線協(xié)議以及相關(guān)微控制器的應(yīng)用。今天,我們就來(lái)深入了解一下這款開(kāi)發(fā)板的硬件設(shè)計(jì)和編程實(shí)現(xiàn)。
文件下載:DM163005.pdf
一、PICDEM? LIN開(kāi)發(fā)板簡(jiǎn)介
PICDEM LIN是一款簡(jiǎn)單而功能強(qiáng)大的開(kāi)發(fā)板,它展示了Microchip多款微控制器的能力,包括PIC16C432、PIC16C433、PIC16C7XX、PIC16X8X、PIC18FXX8系列,同時(shí)搭配了內(nèi)置電壓調(diào)節(jié)器的獨(dú)立LIN收發(fā)器MCP201,采用LIN總線協(xié)議進(jìn)行通信。
1.1 開(kāi)發(fā)板套件內(nèi)容
- PICDEM LIN演示板:具備多種硬件特性,如18 - 、28 - 、40 - 引腳的DIP插座(一次僅使用一個(gè)設(shè)備)、板載+5V穩(wěn)壓器、RS - 232C插座、CAN總線接口、LIN總線主節(jié)點(diǎn)控制面板接口、RF階段、座椅記憶單元、電機(jī)控制從節(jié)點(diǎn)等。
- 示例設(shè)備:包含幾種紫外線可擦除和閃存設(shè)備,如PIC16F874、PIC16C432、PIC16C433,這些設(shè)備預(yù)編程了實(shí)現(xiàn)LIN總線通信的固件。
- 示例程序:CD - ROM中包含示例演示程序,如demo432.asm(PIC16C432 LIN總線演示)、demo433.asm(PIC16C433 LIN總線演示)、demo874.asm(PIC16F874 LIN總線演示)。
- 用戶指南:提供了開(kāi)發(fā)板的詳細(xì)說(shuō)明和使用教程。
1.2 參考文檔
可通過(guò)聯(lián)系Microchip銷(xiāo)售辦公室或從其官網(wǎng)(www.microchip.com)下載獲取,包括各設(shè)備的數(shù)據(jù)手冊(cè)、MPLAB? IDE、Simulator和Editor用戶指南等。
二、快速上手
2.1 作為獨(dú)立板使用
若要立即演示PICDEM LIN,可按以下步驟操作:
- 確保預(yù)編程的示例設(shè)備安裝在PICDEM LIN板的適當(dāng)插座上。
- 為PICDEM LIN供電。
- 使用扁平帶狀電纜連接兩個(gè)面板。
- 按下控制臺(tái)面板上的S8或S10按鈕,觀察從節(jié)點(diǎn)端口的遞增或遞減。
2.2 運(yùn)行示例程序
若要使用示例程序演示PICDEM LIN的操作,需要對(duì)示例設(shè)備進(jìn)行擦除和重新編程:
- 擦除示例設(shè)備
- EPROM設(shè)備:移除覆蓋設(shè)備窗口的標(biāo)簽(若設(shè)備無(wú)窗口則無(wú)法重新編程,可訂購(gòu)JW封裝的窗口版本),將設(shè)備放入紫外線(UV)EPROM擦除器中,擦除時(shí)間取決于光的波長(zhǎng)、強(qiáng)度、與UV源的距離以及設(shè)備的工藝技術(shù)。擦除后進(jìn)行空白檢查。
- EEPROM/Flash設(shè)備:在MPLAB IDE中啟用編程器,將設(shè)備放入編程器,從編程器菜單中選擇擦除程序內(nèi)存或等效的擦除命令(重新編程前無(wú)需擦除)。
- 重新編程示例設(shè)備
三、硬件詳細(xì)描述
3.1 通用電路
- 電源供應(yīng):每個(gè)子系統(tǒng)板的電源圍繞汽車(chē)級(jí)電壓調(diào)節(jié)器構(gòu)建,由反極性阻擋二極管和45V齊納二極管保護(hù),輸入和輸出均經(jīng)過(guò)濾波,輸出端連接LED用于“電源開(kāi)啟”指示。
- LIN總線收發(fā)器:采用插座設(shè)計(jì),可接受行業(yè)標(biāo)準(zhǔn)的LIN或K/L - Line收發(fā)器,移除連接引腳3(VDD)到板VCC電源平面的跳線即可使用Microchip的MCP201。
- ICD/ICSP?接口:LIN總線主節(jié)點(diǎn)和座椅記憶控制節(jié)點(diǎn)配備ICSP接口連接器,可在不將PICmicro設(shè)備從板上移除的情況下進(jìn)行在線編程。使用ICSP接口時(shí),28 - 和40 - 引腳設(shè)備的RB3、RB6和RB7將不可用。
3.2 LIN總線主節(jié)點(diǎn)
- 處理器插座:提供28 - 引腳和40 - 引腳插座,一次僅使用一個(gè)設(shè)備。
- RS - 232串行端口:配備RS - 232電平轉(zhuǎn)換IC及相關(guān)硬件,通過(guò)DB9連接器支持RS - 232主機(jī)連接。端口配置為DCE,可使用直連電纜連接到PC。
- 開(kāi)關(guān):S2開(kāi)關(guān)用于硬復(fù)位處理器,帶有去抖電容,按下時(shí)接地,空閑時(shí)拉高(+5V)。
- 振蕩器選項(xiàng):LIN總線主節(jié)點(diǎn)使用20 MHz晶體運(yùn)行,但可通過(guò)拆除晶體和C20,并在R36上安裝10K電阻,將振蕩器從晶體改為諧振器或RC振蕩器。
- CAN總線連接:有兩種連接CAN總線的方式,可使用MCP2510獨(dú)立CAN控制器,或使用帶有內(nèi)部CAN接口的PICmicro MCU(如PIC18F258或PIC18F458)。通過(guò)跳線E4和E5選擇CAN收發(fā)器芯片連接到MCP2510或40/28 - 引腳插座的RB2和RB3。
- 控制臺(tái)面板:連接到40 - 引腳插座的PORTD和PORTE,用于向主板提供輸入和輸出,可通過(guò)LIN總線固件將輸入轉(zhuǎn)換為L(zhǎng)IN總線消息。若控制臺(tái)板與主板分離,可通過(guò)跳線J6使用扁平帶狀電纜連接。
3.3 控制臺(tái)面板
提供輸入和輸出到LIN總線主節(jié)點(diǎn),輸入可用于生成LIN總線消息,LED、音頻換能器和開(kāi)關(guān)連接到主板的PORTD和PORTE。若板分離,可通過(guò)扁平電纜從J7連接到主板。
- 控制臺(tái)輸入:有十個(gè)開(kāi)關(guān)和一個(gè)跳線輸入,所有按鈕開(kāi)關(guān)上拉到VDD,閉合接地。IGNITION開(kāi)關(guān)閉合時(shí)輸出VDD,OFF位置開(kāi)路;PARK/NEUTRAL開(kāi)關(guān)OFF時(shí)上拉到VDD,閉合接地;跳線E3用于模擬典型汽車(chē)診斷鏈路中的診斷端口跳線。
- 控制臺(tái)輸出:故障指示燈(MIL)連接到VDD,輸入接地時(shí)點(diǎn)亮;Chime音頻蜂鳴器有自帶的聲音發(fā)生器,接地激活。
3.4 遠(yuǎn)程無(wú)鑰匙進(jìn)入面板
提供從鑰匙扣到LIN總線的接口,可作為L(zhǎng)IN總線主節(jié)點(diǎn)或從節(jié)點(diǎn),具體配置取決于固件設(shè)計(jì)。配備28 - 引腳PICmicro MCU插座、RF板、LEARN按鈕和LED,以及LIN總線收發(fā)器。RF接收器為標(biāo)準(zhǔn)的Telecontrolli模塊,工作頻率為433.9 MHz。
3.5 通用原型板
用于通用目的,裝配有四個(gè)插座,包括28 - 引腳和40 - 引腳DIP插座,以及兩個(gè)可安裝16 - 引腳SOIC封裝的區(qū)域,可用于驅(qū)動(dòng)程序等。RC6和RC7引腳連接到單芯片LIN總線收發(fā)器。
3.6 電動(dòng)座椅面板
可用于演示典型的座椅位置記憶模塊,通過(guò)適當(dāng)?shù)墓碳赏ㄟ^(guò)板載按鈕輸入或LIN總線進(jìn)行控制。
- 按鈕和傳感器輸入:三個(gè)按鈕輸入連接到RA4、RA5和RC3,分別標(biāo)記為MEM#1、MEM#2和SET。J12用于啟用外部開(kāi)關(guān)輸入連接,并包含驅(qū)動(dòng)外部LED“記憶”功能指示燈的信號(hào)。J9、J11、J15和J16連接到外部(用戶提供)電機(jī),并具有電機(jī)位置的模擬反饋連接,四個(gè)模擬輸入通過(guò)保護(hù)RC網(wǎng)絡(luò)路由到RA0:3,模擬電壓范圍為0V至5.0V。J8用于外部手動(dòng)電機(jī)控制按鈕開(kāi)關(guān),直接連接到繼電器驅(qū)動(dòng)電路,可獨(dú)立于微控制器操作位置電機(jī),也可通過(guò)PIC?微控制器的PORTB讀取。
- 繼電器驅(qū)動(dòng):板載座椅電機(jī)的功率繼電器,由高側(cè)或低側(cè)八進(jìn)制500 mA驅(qū)動(dòng)器驅(qū)動(dòng),通過(guò)跳線J10、J13和J14配置板以接受特定驅(qū)動(dòng)器。
- ICD/ICSP接口:座椅記憶控制節(jié)點(diǎn)配備ICSP接口連接器,可在不將PICmicro MCU從板上移除的情況下進(jìn)行在線編程。使用ICSP接口進(jìn)行在線調(diào)試(ICD)時(shí),28 - 和40 - 引腳設(shè)備的RB3、RB6和RB7將不可用,電機(jī)控制頭J9和J15不應(yīng)使用。
3.7 LIN總線從節(jié)點(diǎn)H橋驅(qū)動(dòng)器
- 從節(jié)點(diǎn)1:專為PIC16C433和Allegro A3976KLB雙H橋驅(qū)動(dòng)器設(shè)計(jì),PIC16C433的I/O引腳可通過(guò)在跳線場(chǎng)J20上進(jìn)行繞線連接到驅(qū)動(dòng)設(shè)備或任何輸入電路,也可通過(guò)E18、E20 - 24將微引腳單獨(dú)連接到LED進(jìn)行指示。兩個(gè)模擬輸入從連接器JP9路由到跳線場(chǎng)J20。
- 從節(jié)點(diǎn)3:用于演示PIC16C432與高壓、高電流電機(jī)驅(qū)動(dòng)器(如A3952SW)的配合使用,電機(jī)驅(qū)動(dòng)器由引腳RB4至RB7控制,輸出路由到J24和J25。RB0至RB3可通過(guò)跳線E25至E28連接到LED。
- 從節(jié)點(diǎn)4:功能與從節(jié)點(diǎn)3類似,此外,RB4至RB7也可路由到LED,RA0至RA3可作為模擬輸入,模擬輸入路由到連接器JP1。
3.8 LIN總線從節(jié)點(diǎn)高側(cè)驅(qū)動(dòng)器
從節(jié)點(diǎn)2專為PIC16C432和MC33143DW高側(cè)驅(qū)動(dòng)器設(shè)計(jì),PIC16C432的I/O引腳可連接到高側(cè)驅(qū)動(dòng)器和/或LED。若要將PORTB的I/O引腳連接到LED,需安裝跳線E10至E17;若要連接到高側(cè)驅(qū)動(dòng)器,則需移除相應(yīng)跳線并在跳線場(chǎng)J19上建立連接。模擬輸入通過(guò)連接器JP11提供給PORTA引腳。
四、編程實(shí)現(xiàn)
4.1 主軟件
主軟件的源代碼在附錄B中,主例程流程圖如圖3 - 1所示。以PIC16F874的USART實(shí)現(xiàn)LIN總線主節(jié)點(diǎn)。初始化后,主例程從控制臺(tái)面板讀取按鍵,按鍵按下并去抖后,根據(jù)LIN總線規(guī)范生成奇偶校驗(yàn)位,插入標(biāo)識(shí)符字節(jié),計(jì)算校驗(yàn)和,最后通過(guò)LIN總線傳輸所有數(shù)據(jù)。傳輸完成后,等待下一次按鍵。
- 鍵盤(pán)讀取例程:從控制臺(tái)面板讀取一個(gè)按鍵并去抖,根據(jù)按鍵返回一個(gè)8位值到主例程,存儲(chǔ)在ID寄存器(ID_TEMP)中。
- 奇偶校驗(yàn)位生成:根據(jù)LIN總線規(guī)范1.2計(jì)算標(biāo)識(shí)符字節(jié)的奇偶校驗(yàn)位,結(jié)果存儲(chǔ)在標(biāo)識(shí)符字節(jié)的第6位和第7位。
- 校驗(yàn)和計(jì)算:根據(jù)LIN總線規(guī)范1.2計(jì)算校驗(yàn)和,標(biāo)識(shí)符字節(jié)中的字段用于確定計(jì)算校驗(yàn)和的數(shù)據(jù)字節(jié)數(shù)量。計(jì)算完成后,根據(jù)標(biāo)識(shí)符字節(jié)判斷是在主傳輸模式下追加CRC還是在主接收模式下檢查CRC。
- LIN總線傳輸例程:通過(guò)USART將ID數(shù)據(jù)字節(jié)和CRC字節(jié)傳輸?shù)絃IN總線。首先傳輸同步字節(jié)(13位寬,通過(guò)減慢波特率實(shí)現(xiàn)),然后傳輸同步字段、標(biāo)識(shí)符字節(jié),根據(jù)標(biāo)識(shí)符字節(jié)判斷是接收還是傳輸數(shù)據(jù)。
- 錯(cuò)誤處理:示例中未實(shí)現(xiàn)錯(cuò)誤處理,LIN總線規(guī)范允許用戶靈活處理錯(cuò)誤。
4.2 PIC16C432 LIN總線從節(jié)點(diǎn)代碼
從節(jié)點(diǎn)代碼的源代碼在附錄C中,主例程流程圖如圖3 - 2所示。PIC16C432在復(fù)位后初始化寄存器,等待主節(jié)點(diǎn)的同步中斷信號(hào)。檢測(cè)到信號(hào)后,分支到LIN處理子程序。接收到傳輸數(shù)據(jù)后,主例程根據(jù)接收到的標(biāo)識(shí)符采取相應(yīng)行動(dòng),如按下控制臺(tái)面板上的WindowDown按鈕將遞減連接到PORTB的LED,按下WindowUp按鈕將遞增連接到PORTB的LED。
- LIN總線處理程序:接收到同步中斷信號(hào)后,等待同步字節(jié)的起始位,通過(guò)軟件計(jì)數(shù)器測(cè)量時(shí)間并計(jì)算波特率。接收標(biāo)識(shí)符字節(jié),檢查奇偶校驗(yàn)位,根據(jù)標(biāo)識(shí)符字節(jié)判斷是傳輸還是接收數(shù)據(jù)。
- 傳輸模式:傳輸所有數(shù)據(jù)前生成數(shù)據(jù)的CRC值,傳輸完成后返回主例程。
- 接收模式:接收所有數(shù)據(jù)后檢查CRC值,檢查完成后返回主例程。
4.3 PIC16C433 LIN總線從節(jié)點(diǎn)代碼
與PIC16C432從節(jié)點(diǎn)代碼流程基本相同,不同之處在于按下控制臺(tái)面板上的WindowDown按鈕將打開(kāi)GPIO0,按下WindowUp按鈕將關(guān)閉GPIO0。
五、總結(jié)
Microchip的PICDEM? LIN開(kāi)發(fā)板為電子工程師提供了一個(gè)全面的平臺(tái),用于學(xué)習(xí)和實(shí)踐LIN總線協(xié)議以及相關(guān)微控制器的應(yīng)用。通過(guò)深入了解其硬件設(shè)計(jì)和編程實(shí)現(xiàn),我們可以更好地利用這款開(kāi)發(fā)板進(jìn)行項(xiàng)目開(kāi)發(fā)。大家在使用過(guò)程中是否遇到過(guò)一些有趣的問(wèn)題呢?歡迎在評(píng)論區(qū)分享交流。
-
編程實(shí)現(xiàn)
+關(guān)注
關(guān)注
0文章
2瀏覽量
7178
發(fā)布評(píng)論請(qǐng)先 登錄
探索Microchip PICDEM? LIN開(kāi)發(fā)板:硬件設(shè)計(jì)與編程實(shí)踐
評(píng)論