一般計算機結構常見在記憶體及輸出入埠,記憶體用來儲存資料或程式碼,而輸出入埠則用來連接硬體設備,然而不管是記憶體或是輸出入埠都需要編位址,用位址來存取內容。若把記憶體及輸出入埠分開編位址,我們稱為Port Mapped I/O,若是合在一起則稱讚Memory Mapped I/O,可以參考維基百科上的暫存器映射輸出輸入的。典型Port Mapped I/O電腦結構就是x86系統;大部份微處理機和8051微處理器是採用Memory Mapped I/O,採用Memory Mapped I/O,會把輸出入埠及記憶體一起編位址,以8051為例暫存器有256個,從00H~FFH,而00H~7FH是屬於一般用途暫存器,80H~FFH則是屬於特殊功能暫存器,簡稱SFR。
對於C8051F500微處理機,是以8051為核心,擴充許多硬體,包括:看門狗、ADC、DAC、電壓比較器、電壓基準、計時器、PWM、溫度感知器、UART、SPI、SMBUS、CAN、LIN、USB等。因此80H~FFH空間不夠使用,所以採用分頁來處理,C8051F500微處理機把SFR分成三頁,利用特殊功能暫存器頁面選擇暫存器(Special Function Register Page Selection register, SFRPAGE),把內容設定成0x0, 0xC, and 0xF就能選擇,所以要操作特殊功能暫存器,就必須先設定特殊功能暫存器頁面選擇暫存器的內容,再利用MOV指令來直接存取。
在C8051F500_defs.h標頭檔的最後面,有定義特殊功能暫存器的頁面:
//-----------------------------------------------------------------------------
// SFR Page Definitions
//-----------------------------------------------------------------------------
#define CONFIG_PAGE 0x0F // System and Port Configuration Page
#define ACTIVE_PAGE 0x00 // Active Use Page
#define CAN0_PAGE 0x0C // CAN0 Registers
在程式中就可以使用下列命令來存取主動頁面
SFRPAGE = ACTIVE_PAGE;
來存取設定配置面頁暫存器
SFRPAGE = CONFIG_PAGE;
來存取設定CAN面頁暫存器
SFRPAGE = CAN0_PAGE;
「智慧生活科技專業社群」由 Nantou.py 使用者社群與國立虎尾科技大學電機資訊學院共同維護,匯集關注Python、人工智慧、物聯網與智慧生活應用的教師、學生及實務工作者。本社群以「科技融入生活、教學連結場域、知識促進共好」為核心,分享Python程式設計、AI協作學習、AIoT、網際網路與雲端服務、智慧農業、福祉科技、永續發展及USR社會實踐等內容,並將技術導入課堂、社區與真實生活場域。部分文章運用生成式AI協助資料整理、內容架構、程式範例與文字潤飾,文章主題、場域經驗、內容查核及最終修訂則由作者與社群成員負責。我們期待透過人與AI協作,讓科技成為改善生活、連結世代、支持地方與實踐永續的力量。
2013年8月16日 星期五
[ Android CAR ] C8051F500微控器簡介
C8051F500是一顆很實用的車用或工業用微控器,其主要特色如下:
其內部結構圖如下:
- 50 MIPS 8051 CPU
- 64 or 32 kB Flash memory
- 4 kB RAM
- 24 MHz on-board oscillator (±0.5%) with clock multiplier
- 12-bit, 200 ksps ADC, ±1LSB INL (類比/數位轉換器)
- Up to 32 analog inputs (類比輸入)
- Up to 40 digital I/O (數位輸出入)
- CAN 2.0 B, LIN 2.1
- 2 x UART, SPI, I2C
- PWM, Timers (脈波寛度調變及計時器)
- 1.8 to 5.25 V 輸入工作電壓
- –40 to 125 ºC 操作範圍
- 晶片內含兩個比較器及溫度感測器
其內部結構可區分成三大區塊,最上面是類比週邊電路及數位輸出入,中間則是內部振盪及多工電路,最下面則是高速微控器核心。
[ Android CAR ] C8051F500程式燒錄
參考畫
工具:Silicon Laboratories Flash Utility
啟動後的畫面
選擇Connect/Disconnect頁籤,在Debug Interface選擇 C2,C2是Silicon公司制定的2線式通訊協定,JTAG則是由聯合測試工作群組所制定的規範。
點擊Connect按鈕,結果如下圖:
打開電源
選擇Erase all Code Space before download,再按下Download鍵。
工具:Silicon Laboratories Flash Utility
啟動後的畫面
選擇Connect/Disconnect頁籤,在Debug Interface選擇 C2,C2是Silicon公司制定的2線式通訊協定,JTAG則是由聯合測試工作群組所制定的規範。
點擊Connect按鈕,結果如下圖:
觀察結果忘了打開開源
再按一下Connect按鈕,成功連線如下圖:
再來選擇Dowload Hex File/Go/Stop頁籤,按下Browse鈕,選取要燒錄的程式,本實驗選擇Timer0_LED實驗,透過計時器來控制LED的明亮/熄掉。選擇Erase all Code Space before download,再按下Download鍵。
燒錄完成
在左側有個LED,目前狀態全熄
全亮[ Android CAR ] 車載資通訊電子服務整合平台初體驗
車載資通技術與先進交通服務聯盟即將在2013年8/31~9/1,開辦CAN BUS車身電子通訊網路實務班,報名網址:http://tta.iecs.fcu.edu.tw/index.php/2-news/10-2013-06-27-05-50-35,該班課程採用長高科技的車載資通訊電子服務整合平台,如下圖:
實驗測試步驟如下:
1. 連接電源及CAN BUS將控制器及Android平台聯接起來,並打開電源。
2.當Android平台完成開機動作,在主畫面上有一個ACanBusSystem的應用程式,雙擊該圖示,起動車載資通訊電子服務整合平台APP。
3. 起動的歡迎畫面4.起動後的主選單
5.選擇主選擇中的感測訊息
6.選擇畫面中ALL按鈕讀取所有資料
7. 按下返回鍵回到主畫面
8.選擇引擎轉速的選項,並"+"按鍵啟動馬達。
2013年7月25日 星期四
2013年7月13日 星期六
[ Vuforia AR ] 認識目標物(Targets)
對於發展擴增實境APP來說,目標物(Targets)是非常要的。在Vuforia SDK中,何謂目標物?就是指要在真實世界中,用來被偵測或被追蹤的物件。在Vuforia AR中目標物可分成下列幾種:
TrackableResult是指對應到目標物結果,在TrackableResult可以分成:
- 影像目標物(Image Targets):這類就是過去所指無標誌(Markerless)擴增實境,舉凡照片、書封面、產品包裝等都是。
- 帶框標誌(Frame Marker):就是傳統標誌的擴增實境,一般遊戲卡等。
- 多邊目標物(Multi-targets):這類目標物都是使用在3D物件上。
- 虛擬按鍵(Virtual Buttons):在影像目標物上,用一小塊方形來代表按鍵。
- 文字(Text):簡單文字。
- ImageTarget
- MultiTarget
- Marker
- Word
TrackableResult是指對應到目標物結果,在TrackableResult可以分成:
- ImageTargetResult
- MultiTargetResult
- MarkerResult
- WordResult
[ Vuforia AR ] Vuforia AR APP開發流程
Vuforia AR APP開發流程,可分成兩大類:
此部份可以分成本機資料庫(Device Database)和雲端資料庫(Cloud Database),假如目標物少於100個,就可以考慮使用本機資料庫,雲端資料庫則可使用超過百萬個目標物,整體而言本機資料庫反應時間較快,約2-3 Frame,約0.1秒,但雲端資料庫則必須視網連線狀況,約2-3秒。不管是使用本機資料庫或雲端資料庫,都需要藉助目標物管理器(Target Manager)。流程請參閱下圖。
文字目標物開發流程
- 影像目標物(Image Targets)開發流程
- 文字目標物(Word Targets)開發流程
此部份可以分成本機資料庫(Device Database)和雲端資料庫(Cloud Database),假如目標物少於100個,就可以考慮使用本機資料庫,雲端資料庫則可使用超過百萬個目標物,整體而言本機資料庫反應時間較快,約2-3 Frame,約0.1秒,但雲端資料庫則必須視網連線狀況,約2-3秒。不管是使用本機資料庫或雲端資料庫,都需要藉助目標物管理器(Target Manager)。流程請參閱下圖。
文字辦識僅能辦識英文單字,目前提供超過10萬個常用的單字,開發流程請參考下圖。
訂閱:
文章 (Atom)






















