11/29/2010

Integration of RFID and wireless station for 3D artifacts information system



RFID應用越來越廣泛了, 不過在展場還是要小心小朋友摔到地上阿!
引用來源
在無線射頻辨識系統(RFID)成本仍高下,統一超商與資策會、悠遊卡公司等合作開發使用傳統條碼的自助結帳系統,台北縣、市8家門市試用後今天宣布啟用,結帳速度可快5成。
全台最大超商統一超商策略長暨博客來董事長謝健南,今天開心的邀請經濟部商業司司長葉雲龍、資訊工業策進會創新應用服務研究所所長楊仁達等人,一同宣布統一超商啟用新自助結帳系統。



RFID自助結帳系統是在所有商品貼上晶片,除可記錄商品價格、編碼,甚至包含款式、庫存量、生產履歷等多元資料,但相關成本較高。



資策會創新應用服務研究所副主任楊惠雯指出,統一超商今天與資策會等單位合作開發啟用的自助結帳系統,仍使用傳統條碼貼於商品上,運用統一超商既有的icash讀卡機,判讀條碼上的商品價格,讓消費者使用icash悠遊卡或悠遊卡刷卡自行付費,完成結帳。

統一超商說,這個自助結帳系統可讓結帳時間省5成,還可讓店員增加投入其他工作的時間,使生產力可提高1成;目前有台北縣、市8家門市啟用,主要座落在辦公商圈,例如台北市忠孝東路及內湖辦公區門市。

悠遊卡公司表示,目前悠遊卡或與悠遊卡結合發行的卡,都屬於小額使用的卡,單筆上限新台幣1000元,單日限額3000元;若使用金額不足100元,可透過人力作業加值,或透過機器加值,再從信用卡帳戶轉帳,且不需要另外付手續費。

葉雲龍希望,後續金額能夠擴大,不再受限於小額付費,讓消費者一張悠遊卡就能一卡通。

資料來源: 中央社 2010/11/25

影片來源: 民視新聞

6/12/2010

Aalborg Airport 採用512bit記憶體RFID來管理行李

一般而言EPC Gen 2 RFID是96 bits, 僅用來存放ID這個欄位,
Aalborg Airport採用EPC Gen 2 512-bit 記憶體版本, 可以儲存班機號碼、日期、行李輸送路由,
在完全不改變旅客習慣下升級至RFID管理系統,
行李在輸送帶上會被掃描並且照相, 如果安檢發現不正確的行李就會發出警告.
(雖然我覺得恐怖分子應該會自己把RFID撕掉就可以過關)

接著他們使用儲存在RFID上的資訊進行排序, 免除使用大型資料庫來管理這些,
採用的是SlimLine A6020 RFID portals, 每個portal有8個天線.


資料來源:
http://www.rfidjournal.com/article/view/7642/

6/09/2010

RFID singulation 原理

當一群RFID標籤擠在一起, Reader如何能正確選中所要的RFID?
這個方法稱為anti-collision (防碰撞)
通常有2種方式:

第一種是不停的詢問這群RFID標籤, "請序號開頭000的回答我", 如果有2個以上的回答, 表示發生碰撞, 這時候reader可以嘗試加一個號碼, "請序號開頭0001的回答我", 如此持續下去, 直到只有1個RFID回答.

第二種是仰賴機率分佈, 每個RFID心中默數一個數字, 當這個數字歸零才回答, 因為大家默數的數字不盡相同, 因此不一定同時回答. 如果真的同時回答, reader會負責調解由某一個先, 其他的就抱歉重新數一遍.

4/09/2010

NXP 恩智浦推出新的RFID晶片---朝每物一標籤邁進

來源出處

G2iL and G2iL+可以被打開和關閉。是第二代(長距離)標籤,但是可以切換成短距離使用,嘗試破壞會送出警告訊息。

這兩款同樣具有防竊功能。在記憶體多1個bit來表示這樣物品是否被賣出,如果未賣出的物品接近門口就應該發出警報。
支援用RFID來載入韌體到電子產品上(STmicroelectronics出過HF具有同樣功能),這是很有創意的作法,
效果和應用價值不明。

個人看法:
這是朝大規模取代條碼的第一步。在商店需要進行防竊,而賣出給顧客之後考量到隱私權問題需要可以被關閉。
第一點防竊這部份商店為了隨時監控(接收警告訊息),需要在很多位置裝設reader,導入成本可能過高。
第二點關閉的問題,這裡應該需要密碼才能再打開,否則大家都可以打開就失去意義了。
整體而言非常適合用在零售業,一個晶片可以一魚多吃,可以看出NXP在這一塊市場的企圖心。

4/07/2010

Medlog應用Gen2 RFID在醫藥冷鏈

出處

一家葡萄牙公司採用內建溫度記錄器的EPC Gen 2標籤來確保藥物在運送途中獲得妥善的保溫效果。
2009年底他們6個倉儲已全面採用RFID。
過去這家公司嘗試使用溫度記錄器貼在運送車的外面,然而記錄器必須人工打開,運送後記錄必須抄錄到報表上分析,
員工大致上每個月只會做一兩次操作。記錄器並非直接貼在藥物包裝上而是車子(冰箱)外殼,不夠準確。

之後他們使用下圖的產品:
semi-passive (複習一下, 看到semi-passive就知道是有電池但不會主動回報reader)

CAEN RFID

透過一台手持reader啟動標籤之後,每30分鐘記錄一次溫度,內含電池可以使用約3年。
主要可以提高顧客對產品的信心,改善運送環節後,或許可以降低因溫控不佳而丟棄產品的量。

RFID結合Sensor是未來的趨勢之一。

延伸閱讀 何謂冷鏈?(cold chain)

3/02/2010

NXP Mifare Plus 恩智浦提供非接觸式卡片系統新一層安全保護

參考來源
mifare plus
原文出處


重點摘要︰有AES以及CRYPTO1加密功能, 向下相容, 防金鑰更新中斷, 7-Byte唯一ID和亂數ID, 距離估計(防止relay)。
防金鑰更新中斷機制, 如果卡片在key更新時被有心人(攻擊者)強制中斷, 會自動認定失敗並回復至先前的key (我未看先猜是dual-mode保護機制, 也就是存兩組key, 只有更新成功才把pointer指到新的那組, 從規格2x128bit AES key應該可以證實我的猜測)。

Key applications(主要應用)
  • 交通 Public transportation
  • 存取管理 Access management, e.g. employee, school or campus cards
  • 道路電子收費 Electronic toll collection
  • 停車Car parking
  • 認同卡 Loyalty programs
Key features(功能規格)
  • 2 or 4-KB EEPROM
  • Simple fixed memory structure compatible with MIFARE Classic 1 K (MF1ICS50), MIFARE Classic 4 K (MF1ICS70)
  • Access conditions freely configurable
  • Smooth migration from MIFARE Classic to MIFARE Plus security level supported
  • Open standard AES crypto for authentication, integrity and encryption
  • Common Criteria Certification: EAL4+ for IC HW and SW
  • ISO/IEC 14443-A unique serial number, 4 or 7 byte and random IDs
  • Multi-sector authentication, multi-block read and write
  • Anti-tear function for writing AES keys
  • Keys can be stored as MIFARE Classic CRYPTO1 keys (2 x 48 bit per sector) or as AES keys (2 x 128 bit sector)
  • Supports virtual card concept
  • High data rates up to 848 kbit/s
  • Available in MOA4 modules or 8-inch sawn bumped wafer
NXP MIFARE Plus is based on open global standards both for air interface and cryptographic methods. It is available in two versions: MIFARE Plus S, the Slim version, for straightforward migration of MIFARE Classic systems, and MIFARE Plus X, the eXpert version, which offers more flexibility to optimize the command flow for speed, privacy and confidentiality. MIFARE Plus X offers a rich feature set, including proximity checks against relay attacks.
MIFARE Plus is fully functional backwards compatible with MIFARE Classic 1 K / 4 K. Interoperability with MIFARE Classic has been verified by the independent MIFARE Certification Institute. MIFARE Plus offers the possibility to issue cards seamlessly into existing MIFARE Classic applications, before the infrastructure is upgraded. Once the security upgrades are in place, MIFARE Plus cards can be switched to a more secure mode in the field with no customer interaction necessary. AES (advanced encryption standard) is then being used for authentication, encryption and data integrity.
MIFARE Plus supports high-speed communication between card and terminal at up to 848 kbps/s, for time critical services. The read range of up to 10 cm increases the convenience of the touch-and-go experience.

Security Levels(可以切換幾個安全等級)
MIFARE Plus cards supports one pre-personalization and 3 security levels. Cards operate in one security level at any given time and can only be switched to a higher level.
  • Security Level 0 (預先燒錄key, AES和CRYPTO1保護memory?)
    MIFARE Plus cards are pre-personalized with configuration keys, level switching keys, MIFARE Classic CRYPTO1 and AES keys for the memory.
  • Security Level 1 (向下相容模式)
    In this level the cards are 100% functionally backwards compatible with MIFARE Classic 1K / 4K cards. Cards work seamlessly in existing MIFARE Classic infrastructure.
  • Security Level 2 (用AES做reader認證, 傳輸中用CRYPTO1做資料加密)
    Mandatory AES authentication. MIFARE Classic CRYPTO1 for data confidentiality.
  • Security Level 3 (全部用AES做reader認證, 傳輸資料加密, 資料檢查碼, 額外提供距離偵測)
    Mandatory AES for authentication, communication confidentiality and integrity. Optional proximity detection (MIFARE Plus X only).
自動防中斷機制, 如果卡片在key更新時被有心人(攻擊者)強制中斷, 會自動認定失敗並回復至先前的key, (我未看先猜是dual-mode保護機制, 也就是存兩組key, 只有更新成功才把pointer指到新的那組, 從規格2x128bit AES key應該可以證實我的猜測)
An automatic anti-tear mechanism is available for secure deployment of rolling keys. If a card is removed from the field during a key update, it either concludes the update or automatically falls back to the previous key. NXP recommends 7Byte UID, but offers 4B UID versions of MIFARE Plus during migration. MIFARE Plus is available in the proven MOA4 module and as sawn bumped wafers, no changes for existing manufacturing processes necessary.
Product leaflet
You can download the product leaflet here.

2/04/2010

RFID Tag ID越長, 讀取率越低

原文 http://www.rfidjournal.com/article/articleview/7336/1/82/
在18000-6系列的標籤有4個memory bank
2009年初, NXP和Alien開始生產有多512bit的標籤
有人開始辯論應配置在MB00MB01, 也就是UID的位置,
或是配置在MB11, 也就是User自行定義的區塊(存放產品特定資料)
這會影響不同系統的互相操作性, 以及應用的處理流程。

米其林輪胎有應用RFID來追蹤輪胎的長足經驗。
實驗證實如果UID從96bit加長到240bit, 讀取率會下降30%
研究同時指出, 讀取器只能在singulation (防碰撞階段)讀取User memory (MB11)。
因此如果要以TID本身當作防碰撞機制, 會很有問題。
UID要短, 資料就還是乖乖的存放在User memory (MB11)。

[心得]
據我的瞭解, 防碰撞機制有幾種方法, 樹狀(tree-based)或是 Aloha (標籤自行設定Time-slot回答)等等。上面這篇文章探討的應該是樹狀的防碰撞機制。

2/03/2010

EPCglobal US 2009調查發現RFID應用在消費者包裝品上取得一定基礎

原文 http://www.rfidjournal.com/article/view/7361/1

重點整理
[Cons]
根據2009年調查86%已採用或導入中的廠商,約42%取得最高100萬美金的利潤。根據這份調查,沒有任何一家廠商是在等待RFID價格下滑,這可視為一項指標:RFID價格不再是讓人裹足不前的因素。當然因為這份調查主要是EPCglobal US成員,可能有所偏頗。

99%的棧版(pallet)讀取率和82%的包裝盒讀取率說明我們已可減輕對於金屬物讀取率的憂慮。開發商可轉而嘗試開發不同的標籤和天線設計以符合各種使用者的需求。

[Pros]
根據2009年調查, 參與廠商大致分成衣服、自動化、化學、消費者電子產品、快速移動的消費者產品、免費食物、一般採購。65%已經採用EPC系列產品,21%嘗試導入,7%尚未導入。

83%指出導入原因是基於貿易夥伴的要求(大部分仍來自於Wal-Mart)。實際上這些公司很少利用RFID產生的data進一步產生新的價值。

1/19/2010

CRC運算的查表法原理

原理是你在做長除法時,

第一步會看第一位, 會寫一個商數到上面, 然後乘積寫在下方, 把被除數 減掉(xor) 乘積, 得到第一回合餘數r1

重點是如果你看r1的第一個bit, 只會跟"原始被除數"的第1,2個bit有關
再做一回合, r2的第一個bit, 只會跟"原始被除數"的第1,2,3個bit有關

從這裡我們可以推敲是否需要xor除數, 產生控制紀錄 (yes, no, yes, yes, yes, no...) 只是用{1,0}來表示

欲計算m(x) + a(x) + b(x) + c(x) + d(x)
我們可以先算好a(x) + b(x) + c(x) + d(x)的結果, 再+ m(x)

先算好a(x) + b(x) + c(x) + d(x)的結果就是所謂的TABLE啦,
詳細步驟還是看上面的URL.

1/09/2010

PowerpointMerger 合併數個ppt檔案

解決向上級匯報時, 生不出素材的困擾.
我是採用Office 2007的系統, powerpoint object model是不一樣的.

執行檔下載點
參考資料:
Simple Powerpoint automation using C#
MSDN Office development

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Office.Core;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;

namespace PowerpointMerger
{
    public partial class Form1 : Form
    {
        static int MAX_SLIDE_NUMBER = 10;
        string[] filepath = new string[MAX_SLIDE_NUMBER];
        string templatePath;

        PowerPoint.Application objApp;
        PowerPoint.Presentations objPresSet;
        PowerPoint._Presentation objPresMerged;
        
        PowerPoint.Slides objSlidesMerged;
        
        //PowerPoint.Slides objSlidesSrc; //來源的ppt slides
        //PowerPoint.Slides objSlidesDst; //合併的目標ppt slides        

        public Form1()
        {
            InitializeComponent();
        }        

        public void start()
        {
          
            //Create a new presentation based on a template.
            objApp = new PowerPoint.Application();
            objApp.Visible = MsoTriState.msoTrue;
            
            objPresSet = objApp.Presentations;
            if (File.Exists(templatePath))
            {
                // 開啟template
                objPresMerged = objPresSet.Open(templatePath, MsoTriState.msoTriStateMixed, MsoTriState.msoTrue, MsoTriState.msoTrue);
            }
            else
            {
                objPresMerged = objPresSet.Add(MsoTriState.msoTrue); //產生一個新的
            }
            objSlidesMerged = objPresMerged.Slides; // 取得新的merged slides

            // merge slides                      
            int numSlides = 0;
            for (int i = 0; i < MAX_SLIDE_NUMBER; i++)
            {
               numSlides = MergeSlide(this.objSlidesMerged, filepath[i], numSlides);
            }

            // save as a copy to ..
            // objPresMerged.SaveCopyAs("E:\\test_new.ppt", Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue);
            // objApp.Quit();
        }

        private int MergeSlide(PowerPoint.Slides objSlidesMerged, string path, int numSlides)
        {            
            if (File.Exists(path))
            {
                PowerPoint._Presentation ps = objPresSet.Open(path, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse);
                // expression.InsertFromFile(FileName, Index插入點, SlideStart來源檔起始點, SlideEnd來源檔結束點)
                int numInserted = objSlidesMerged.InsertFromFile(path, numSlides, 1, ps.Slides.Count);
                numSlides += numInserted;
            }
            return numSlides;
        }

        /// <summary>
        /// 將檔案路徑設定到filepath陣列, 方便merge時以迴圈處理.
        /// </summary>
        /// <param name="index"></param>
        /// <param name="path"></param>
        private void setFilePath(int index, string path)
        {
            filepath[index] = path;
        }

        private void buttonStart_Click(object sender, EventArgs e)
        {
            start();
        }

        private void btn1_Click(object sender, EventArgs e)
        {
            openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "Powerpoint files (*.ppt)|*.ppt";            
            if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
                return;
            textBox1.Text = openFileDialog1.FileName;
            setFilePath(0, textBox1.Text);
        }

        private void btn2_Click(object sender, EventArgs e)
        {
            openFileDialog2 = new OpenFileDialog();
            openFileDialog2.Filter = "Powerpoint files (*.ppt)|*.ppt";            
            if (openFileDialog2.ShowDialog() == DialogResult.Cancel)
                return;
            textBox2.Text = openFileDialog2.FileName;
            setFilePath(1, textBox2.Text);
        }

        private void btn3_Click(object sender, EventArgs e)
        {
            openFileDialog3 = new OpenFileDialog();
            openFileDialog3.Filter = "Powerpoint files (*.ppt)|*.ppt";            
            if (openFileDialog3.ShowDialog() == DialogResult.Cancel)
                return;
            textBox3.Text = openFileDialog3.FileName;
            setFilePath(2, textBox3.Text);
        }

        private void btn4_Click(object sender, EventArgs e)
        {
            openFileDialog4 = new OpenFileDialog();
            openFileDialog4.Filter = "Powerpoint files (*.ppt)|*.ppt";            
            if (openFileDialog4.ShowDialog() == DialogResult.Cancel)
                return;
            textBox4.Text = openFileDialog4.FileName;
            setFilePath(3, textBox4.Text);
        }

        private void btn5_Click(object sender, EventArgs e)
        {
            openFileDialog5 = new OpenFileDialog();
            openFileDialog5.Filter = "Powerpoint files (*.ppt)|*.ppt";            
            if (openFileDialog5.ShowDialog() == DialogResult.Cancel)
                return;
            textBox5.Text = openFileDialog5.FileName;
            setFilePath(4, textBox5.Text);
        }

        private void btnTemplate_Click(object sender, EventArgs e)
        {
            openFileDialogTemplate = new OpenFileDialog();
            openFileDialogTemplate.Filter = "Powerpoint files (*.ppt)|*.ppt";
            if (openFileDialogTemplate.ShowDialog() == DialogResult.Cancel)
                return;
            
            templatePath = openFileDialogTemplate.FileName;
            textBox6.Text = templatePath;
        }
    }
}

1/03/2010

2010新春出遊 觀霧+白蘭+清泉+北埔


檢視較大的地圖

桃山隧道因為拓寬坍塌封閉, 必須從白蘭部落繞道到觀霧, 我們運氣不錯下車散步時都沒下雨. 觀霧的霧氣真的很大, 氣溫大約6-7度. 走40分鐘能下到觀霧瀑布, 可惜冬天水量很少, 回程爬60分鐘非常辛苦. 山間的新鮮空氣對肺活量蠻有幫助的, 而且能看到大片筆直的樹林藏在霧中(都沒有檳榔樹)非常感動, 好像阿凡達的場景.

離開觀霧時已經起大霧而且下雨, 一路跟著"大頭","小蘿蔔頭","豬頭"車隊挺進抵達白蘭(浮雲山莊), 老闆娘和小老闆很熱情, 小老闆自彈自唱加上小米酒招待, 老闆娘則是演唱教會歌曲和分享與上帝相遇的小故事.

木頭房間很舒服, 雖然我一直覺得被子潮濕會睡不好, 晚上蓋著還是蠻暖和的.
殺手玩了幾盤就有點過High, 之後交換禮物換到一個香氛蠟燭, 一本書, CD和購物袋.
太陽剛升起時山間沒有霧氣很漂亮, 可以欣賞雲海, 不過沒一個小時就把整個部落覆蓋.

張學良故居+清泉(井上溫泉)和白蘭很近大約10分鐘車程, 有免費的泡腳池(水質不太乾淨), 三個吊橋中間的地方可以通往三毛故居, 有三毛生平的介紹和生活照. 牆上有封叮嚀的信, 希望大家都把垃圾帶走, 不要勸原住民一起喝小米酒, 傷害彼此的健康.

可能放連假的關係, 今天北埔的人超級多, 內灣跟北埔應該是新竹人連假最後還想玩一天的首選. 我們也去吃了號稱不會溶化的幸運草良口冰, 老闆很詳細地介紹冰淇淋冰晶溶化原理. 咖啡比較久回甘的時間, 宇智金石冰(抹茶紅豆)的氣味停留比較短暫. 我不能吃到咖啡因, 所以點巧克力加牛奶, 不過額外有一球薑汁口味冰淇淋很特別, 也很好吃.