首页 / 专利库 / 电脑零配件 / 嵌入式系统 / 소프트웨어를 내장 시스템으로 다운로드하기 위한 방법 및장치

소프트웨어를 내장 시스템으로 다운로드하기 위한 방법 및장치

阅读:317发布:2023-03-30

专利汇可以提供소프트웨어를 내장 시스템으로 다운로드하기 위한 방법 및장치专利检索,专利查询,专利分析的服务。并且PURPOSE: A method for downloading new software and a boot version to the memory of an embedded system is provided by using a fail-safe procedure by discriminatingly using a write-protected area and an unprotected area. CONSTITUTION: A controller (11) performs system operation by operating software stored on a flash memory (12). A RAM (13) is a volatile memory for temporarily storing an initializing and a downloading program and in download mode, a controller (11) is made to operate the system (10). At this time, the software of the latest version copied from the flash memory (12) to the RAM (13) is used each time the system is initialized. To allow complete operation in downloading operation, all operating programs can be copied to the RAM 13.,下面是소프트웨어를 내장 시스템으로 다운로드하기 위한 방법 및장치专利的具体信息内容。

  • a) 원래의 초기화 및 다운로드 운영 프로그램 버전을 포함하는 하나 이상의 쓰기 방지된 구역과, 적어도 업그레이드가능한 초기화 및 다운로드 운영 프로그램 버전을 포함하는 하나 이상의 비보호 구역을 갖는 프로그램가능한, 비소멸성 제1 메모리를 제공하고 ;
    b) 초기화시, 적어도 상기 초기화 및 다운로드 운영 프로그램 버전의 상기 업그레이드가능한 버전, 또는 원래의 버전을 제2메모리 및/또는 메모리 위치(location)에 복사하고 ;
    c) 상기 제2메모리 및/또는 상기 메모리 위치로부터 상기 내장 시스템을 운영하고 ; 및
    d) 새로운 운영 소프트웨어 및/또는 초기화 프로그램 버전을 다운로드하고 상기 다운로드된 버전으로 상기 비보호 구역을 프로그래밍할 수 있도록 하는 것으로 구성되는, 내장 시스템의 운영 소프트웨어 및/또는 초기화 프로그램 버전을 업그레이드하기 위한 방법.
  • 제1항에 있어서, 상기 제2메모리가 상기 제1메모리로부터 물리적으로 분리됨을 특징으로 하는 방법.
  • 제1항에 있어서, 새로운 버전의 다운로드는 내장 시스템의 데이터 수신 입력기에 연결된 휴대용 데이터 소스를 이용함으로써 이루어짐을 특징으로 하는 방법.
  • 제1항에 있어서, 새로운 버전의 다운로드는 데이터 링크를 통하여 원격 데이터 소스로부터 데이터 그룹을 내장 시스템의 데이터 수신 입력기로 전송함으로써 원격 데이터 소스로부터 이루어짐을 특징으로 하는 방법.
  • 제4항에 있어서, 데이터 링크는 무선 링크임을 특징으로 하는 방법.
  • 제1항에 있어서, 비소멸성 메모리는 플래시 메모리임을 특징으로 하는 방법.
  • 제2항에 있어서, 제2메모리는 소멸성 메모리임을 특징으로 하는 방법.
  • 제1항에 있어서, 중단된 다운로드된 데이터의 도착이 데이터 상태 코드를 체크함으로써 탐지됨을 특징으로 하는 방법.
  • 제1항에 있어서, 초기화할 때, 다음 단계들을 실행하는 방법 :
    a) 비보호 구역의 상태 코드를 체크하고 ;
    b) 상기 상태 코드가 초기화 및 다운로드 운영 프로그램 버전이 유효함을 나타내면, 상기 프로그램 버전을 제2메모리 및/또는 메모리 위치에 복사하고 ; 및
    c) 상기 상태 코드가 초기화 및 다운로드 운영 프로그램 버전이 유효함을 나타내지 않으면, 상기 원래의 초기화 및 다운로드 운영 프로그램 버전을 제2메모리 및/또는 메모리 위치에 복사한다.
  • 제2항에 있어서, 쓰기 방지된 구역 및 비보호 구역은 단일 플래시 메모리의 섹터임을 특징으로 하는 방법.
  • 제1항에 있어서, 내장 시스템은 전화기임을 특징으로 하는 방법.
  • 제1항에 있어서, 내장 시스템은 원격 통신 시스템(telecommunication system)임을 특징으로 하는 방법.
  • a) 상기 내장 시스템의 원래의 초기화 및 다운로드 프로그램 버전을 저장하기 위한 하나 이상의 쓰기 방지된 구역과, 상기 내장 시스템의 업그레이드가능한 초기화 및 다운로드 프로그램 버전을 저장하기 위한 하나 이상의 비보호 구역을 갖는 단일 비소멸성 메모리 ;
    b) 상기 내장 시스템의 초기화 및 다운로드 프로그램 버전을 저장하기 위한, 적어도 제2메모리 및/또는 메모리 위치 ;
    c) 적어도 상기 원래의 초기화 및 다운로드 프로그램 또는 상기 업그레이드가능한 초기화 및 다운로드 프로그램 버전을 상기 제2메모리 및/또는 메모리 위치에 복사하고, 적어도 새로운 초기화 및/또는 다운로드 프로그램 버전을 다운로드하고 프로그래밍하기 위한 상기 내장 시스템의 초기화 프로세스 및 운영을 제어하기 위한 제어 회로 ; 및
    d) 소프트웨어 및/또는 상기 초기화 프로그램 버전을 다운로드하기 위한 데이터 수신 입력기
    를 포함하는, 운영 소프트웨어 및/또는 초기화 프로그램 버전에 대한 업그레이드 성능을 갖춘 내장 시스템.
  • 제13항에 있어서, 상기 제2메모리가 상기 제1메모리로부터 물리적으로 분리됨을 특징으로 하는 내장 시스템.
  • 제13항에 있어서, 새로운 버전이 데이터 수신 입력기에 연결된 데이터 소스를 이용함으로써 다운로드됨을 특징으로 하는 내장 시스템.
  • 제13항에 있어서, 데이터 소스에 의해 전송된 새로운 데이터 버전을 수신하고 다운로드하기 위한 데이터 통신 링크를 구비함을 특징으로 하는 내장 시스템.
  • 제13항에 있어서, 데이터 통신 링크는 무선 링크임을 특징으로 하는 내장 시스템.
  • 제13항에 있어서, 비소멸성 메모리는 플래시 메모리임을 특징으로 하는 내장 시스템.
  • 제13항에 있어서, 제2메모리는 소멸성 메모리임을 특징으로 하는 내장 시스템.
  • 제13항에 있어서, 제어 회로가 적어도 다음 단계들에 따라 작동되는 것을 특징으로 하는 내장 시스템 :
    a) 초기화할 때, 상기 비보호 구역의 상태 단어를 체크하고 ;
    b) 상기 상태 단어가 초기화 및 다운로드 운영 프로그램 버전이 유효함을 나타내면, 프로그램 버전을 제2메모리 및/또는 메모리 위치에 복사하고 ; 및
    c) 상기 상태 단어가 초기화 및 다운로드 운영 프로그램 버전이 유효함을 나타내지 않으면, 상기 원래의 초기화 및 다운로드 운영 프로그램 버전을 제2메모리 및/또는 메모리 위치에 복사한다.
  • 제13항에 있어서, 데이터 상태 단어가 업그레이드 가능한 초기화 및 다운로드 프로그램 버전이 유효하다고 나타내지 않을 때마다 원래의 초기화 프로그램이 사용됨을 특징으로 하는 내장 시스템.
  • 제13항에 있어서, 전화기 임을 특징으로 하는 내장 시스템.
  • 제13항에 있어서, 원격 통신 시스템임을 특징으로 하는 내장 시스템.
  • 说明书全文

    소프트웨어를 내장 시스템으로 다운로드하기 위한 방법 및 장치{A METHOD AND APPARATUS FOR DOWNLOADING SOFTWARE INTO AN EMBEDDED SYSTEM}

    본 발명은 내장 시스템 분야에 관한 것이다. 더 자세하게, 본 발명은, 기판 상에서 고장 안전 절차를 이용하여 내장 시스템의 단일 비소멸성 메모리로 새로운 소프트웨어 버전을 다운로드함으로써, 내장 시스템의 운영(operation)을 제어하는데 쓰이는 소프트웨어 버전을 업그레이드하기 위한 효과적인 방법 및 장치에 관한 것이다.

    내장 시스템은 산업계에서 그리고 사무용 및 소비자용 제품으로 널리 사용된다. 실제적으로, 내장 시스템은, 마이크로프로세서 및/또는 마이크로컨트롤러를 사용하고 다목적 계산에만 관련되지 않은 거의 어떠한 장치도 포함한다. 제어 시스템은 그 장치 내에 "내장되어 있고" 장치의 일체를 이루는 부분이다. 그러한 장치는 많은 유형의 기계 및 설비 운영을 제어, 모니터 또는 지원하기 위해 사용된다. 예를 들어, 전화기 및 다른 많은 전자 장치들이 펌웨어(firmware)에 의해 운영 제어되는데, 이 펌웨어는 전자 장치의 메모리에 저장된(또는 메모리에 "적재된(burned)") 특정 소트프웨어이며 통상 그 장치를 운영하는 컨트롤러 및/또는 처리 장치에 의해 항상 호출된다.

    많은 장치에서, 펌웨어는 데이터베이스에 연결되고, 동일한 또는 다른 메모리에 저장되며, 장치의 적절한 운영을 위해 필요한 정보를 포함하고 있다. 통상적으로 장치는 특정 인쇄회로판(PCB)을 포함하는데, 그 위에 컨트롤러 또는 처리 장치 및 요구되는 연결 메모리가 어셈블링된다(assembled)(통상 납땜된다). 이 인쇄회로판 구조가 대량 생산시 공간을 절약하고 비용효과적이기 때문에 널리 사용된다. 펌웨어의 원 버전(orignial version)과 데이터베이스의 내용은, 소비자에게 배달되기 전 제조자에 의해 장치의 메모리로 최초로 다운로드되고, 프로세서 또는 컨트롤러와 함께 장치의 운영 시스템 구실을 한다.

    많은 경우, 소비자의 요구로 인하여, 시간이 지나면서 장치의 특성의 개선이 요구되고, 장치의 성능을 개선시키기 위해 연구 및 개발 활동을 계속하는 제조자들에 의해 새로운 특성들이 제공된다. 그와 같은 개선은 때때로 장치의 펌웨어 및/또는 데이터베이스 내용을 새로운 버전으로 업그레이드함으로써 실현된다. 이러한 업그레이드는 새로운 버전을 다운로드하고, 이전의 펌웨어 및 데이터베이스 버전을 포함하는 메모리 셀에 중복기재(프로그래밍)하는 것을 요구한다. 당해 분야에서 업그레이딩은, 기술자 또는 퍼스널 컴퓨터(PC)와 같은 데이터원에 의해, 장치에 연결된 데이터 통신 링크를 통해 이루어질 수 있어서 업그레이드 하기 위해 장치를 제조자에게 되돌려 보낼 필요가 없다. 덧붙여, 판상 업그레이드(on-board upgrade)를 가능하게 하는 것, 즉 인쇄회로판으로부터 업그레이드가능한 구성요소(예:메모리 장치)를 분해할 필요가 없도록 하는 것이 절실히 요구된다.

    대부분의 내장 시스템은 "부트(boot)" 운영으로 알려진 초기화 프로세스를 사용하는데, 이 때 기본 소프트웨어 또는 특정 지시가 시스템이 정상 운영 모드로 될 때까지 메모리의 부트 섹터(섹터는 저장 공간의 단위를 나타낸다)로부터 적재된다. 부팅 성능은, 다운로드 프로세스가 작동하지 않거나(failed) 다운로드된 펌웨어 버전이 어떤 이유에서 훼손되었을 때에도, 또다른 다운로드 및 프로그래밍 프로세스를 가능하게 하기 위해 계속 유지되어야 한다. 따라서, 부트 지시는 다운로딩 또는 프로그래밍 프로세스가 작동하지 않을 때마다 안전하게 저장 회복되어야 한다. 알려진 전형적인 해결방법은 부트 지시를 읽기전용메모리(ROM)에 저장하는 것인데, ROM은 비소멸성(즉, 전원공급의 필요없이 저장된 데이터를 보유한다)이고 쓰기 방지된다. 그러나 ROM이 비교적 고밀도이긴 하지만 업그레이드 될 수 없고 저장된 펌웨어 버전에 중복기재를 가능하게 하려면 재프로그램가능한 추가 비소멸성 메모리와 함께 운영되어야 한다. 따라서, 이러한 해결방법은 하나 이상의 비소멸성 메모리가 요구되고 또한 값비싼 인쇄회로판 구역(area)을 소비하며 부트 섹터가 업그레이드될 수 없기 때문에 적응성이 없고 비용효과적이지 못하다. 게다가, ROM의 초기 프로그래밍은 비교적 시간이 오래 걸리고, 대개는 대량 생산시에 비용 효과적이다.

    미국 특허 제5,666,293호는 브로드캐스트 채널을 통해 새로운 버전을 다운로드함으로써 단말 장치의 운영 시스템 소프트웨어를 업그레이드하는 방법을 개시하고 있다. 업그레이드는 패킷된 데이터 파일을 순환 브로드캐스트(cyclic broadcast)하여 이루어지는데, 이 파일은 운영 시스템을 포함하고 있으며 단말 장치에 의해 검색되고(captured) 저장된다. 그러나 운영 시스템 업그레이드 루틴이, 단독으로 또는 비소멸성 램(Non-Volatile Random Access Memory:NVRAM)의 쓰기 방지된 섹터와 함께 운영되는 ROM에 저장된다. 덧붙여, 비소멸성 램에 저장된 운영 시스템을 부팅하는 것이, ROM에 저장되고 업그레이드 되지 않는 적재기 프로그램(loader program)에 의해 실행된다.

    미국 특허 제5,647,986호는 컨트롤러에 의해 제어되는 자동 폐수 처리 장치를 개시하고 있다. 컨트롤러는 플래시 메모리와 부트 메모리의 조합으로 되어 있고, 원격 프로그래밍 성능을 갖추고 있다. 플래시 메모리는 장치의 운영 프로그램을 저장하고 있고 부트 메모리는 부트 코드를 포함하고 있는데 이 코드는 플래시 메모리의 기본 통신과 재프로그래밍을 처리하는데 요구된다. 컨트롤러는 그로부터 새로운 운영 프로그램이 다운로드되는 중앙 컴퓨터와 연결이 설정되고 플래시 메모리의 내용을 삭제하라는 명령을 받는다. 플래시 메모리의 내용이 삭제된 후, 컨트롤러는 중앙 컴퓨터에서 전송된 데이터로 플래시 메모리를 재프로그램 하기 시작한다. 프로그래밍이 완료된 후, 컨트롤러는 장치의 처리장치(processing unit)를 다시 부팅하고 장치는 업데이트된 운영 프로그램에 따라 작동하기 시작한다. 그러나, 이 장치는 다운로드 및/또는 프로그래밍 프로세스 동안 작동이 멈추는 경우 백업(backup) 또는 재부트 성능이 없으며 별도의 업그레이드되지 않는 부트 메모리를 필요로 한다.

    당해 기술분야의 종래 기술은, 고장 안전 절차를 이용하여, 다운로드 제어 프로그램의 업그레이드도 허락하는 내장 시스템의 단일 비소멸성 메모리로 새로운 소프트웨어 및 부트 버전을 판상 다운로드하는 문제에 대해 만족스러운 해결을 제시해주지 못하고 있다.

    본 발명의 목적은 고장 안전 절차를 이용하여 새로운 소프트웨어 및 부트 버전을 내장 시스템의 메모리로 다운로드하기 위한 방법 및 장치를 제공하는 것이다.

    본 발명의 다른 목적은, 기판상에서(on board) 그리고 필드에서(in the field) 실시되는, 새로운 소프트웨어 및 부트 버전을 내장 시스템의 메모리로 다운로드하기 위한 방법 및 장치를 제공하는 것이다.

    본 발명의 또 다른 목적은 단일 비소멸성 메모리 구성요소를 사용하는, 새로운 소프트웨어 및 부트 버전을 내장 시스템의 메모리로 다운로드하기 위한 방법 및 장치를 제공하는 것이다.

    본 발명의 다른 목적 및 장점은 하기 상세한 설명에서 명백해질 것이다.

    본 발명은 내장 시스템의 운영 소프트웨어 및/또는 초기화 프로그램 버전을 업그레이드하기 위한 방법에 관한 것이다. 플래시 메모리와 같은, 단일 비소멸성 메모리 요소는 쓰기 방지 구역(write-protected area)과 비보호 구역(unprotected area)으로 나누어진다. 비보호 구역은 다운로드된 소프트웨어 버전을 저장하기 위해 쓰인다. 플래시 메모리의 하드웨어 쓰기 방지 구역(hardware write protected area)은 초기화 및 다운로드 프로그램의 원 버전을 저장하기 위해 쓰이며, 필드에서 사용되지 않는 비교적 높은 전압에서만 프로그램될 수 있다. 원래의 보호된 초기화 및 다운로드 프로그램은 백업 프로그램으로 기능하고, 현재의 다운로드 프로세스가 작동을 멈출 때마다 새로운 다운로드 프로그램을 실행시키기 위해 사용된다. 쓰기 방지된 구역은 ROM과 같은 비소멸성 메모리가 추가로 필요하지 않게 한다.

    바람직하게, 플래시 메모리에 저장된 초기화 및 다운로드 프로그램의 마지막 유효 버전(valid version)이 램과 같은 소멸성 메모리로 복사되고(copied), 내장 시스템이 램으로부터 작동된다. 이는 내장 시스템이 정상 운영되는 동안 새로운 초기화 프로그램 및 운영 소프트웨어 버전의 다운로드 프로세스를 가능하게 한다. 바람직하게, 초기화 프로세스 시기에, 초기화 및 다운로드 프로그램이 램에 복사되고 내장 시스템은, 필요한 경우, 초기화 및 다운로드 기능을 수행하기 위해 램으로부터 작동된다. 선택적으로, 시스템 기능의 전부 또는 부분이, 업그레이드 프로세스 동안 추가 기능을 허락하도록 램으로부터 복사되고(duplicated) 작동될 수 있다.

    다운로드는 내장 시스템 내 데이터 수신 입력기(data receiving input)를 통해서 수행된다. 다운로드된 데이터는 검증되고, 유효하다고 판단되면, 플래시 메모리의 비보호 구역 내로 프로그램된다. 선택적으로, 업그레이드하기 위해, 플래시 메모리가 먼저 삭제될 수 있고, 데이터는 플래시 메모리의 비보호 구역 내로 직접 저장된다. 다운로드 프로세스가 회복할 수 없는 에러로 인하여 중단되면, 플래시 메모리의 쓰기 방지된 구역으로부터 최초의 초기화 프로세스를 활성화시킨후, 또는 플래시 메모리의 비보호 구역의 업데이트된 초기화 과정을 활성화시킨 후에 완료될 수 있다. 다운로드 및 프로그래밍 프로세스가 처음부터 다시 시작되고, 또는 선택적으로 데이터 에러가 검출된 지점부터 계속된다. 프로그래밍 후, 시스템이 다시 부팅되고, 플래시 메모리의 비보호 구역에 저장된 업데이트된 초기화 프로세스가 활성화되고, 램으로 복사되고 내장 시스템이 새로운 운영 소프트웨어 버전에 의해 운영된다. 선택적으로, 운영 소프트웨어의 전부 또는 부분이 램으로 복사되고, 계속적으로 실행될 수 있다.

    바람직하게, 새로운 버전의 다운로드는, 내장 시스템의 데이터 수신 입력기(data receiving input)에 연결된 PC와 같은 데이터 소스에 의해 수행되거나, 또는 데이터 링크를 통하여 원격 소스로부터 데이터 그룹을 내장 시스템의 데이터 수신 입력기로 송신함으로써 원격 데이터 소스로부터 수행된다.

    본 발명은 또한, 필드에서 그리고 판상에서, 정규 운영에 영향을 주지 않고 운영 소프트웨어 및/또는 초기화 프로그램 버전의 업그레이드 성능을 갖는 내장 시스템에 관한 것이다. 내장 시스템은 다음으로 구성된다.

    - 내장 시스템의 원래의 초기화 및 다운로드 프로그램을 저장하기 위한 쓰기 방지된 구역과 초기화 및 다운로드 프로그램의 최종적으로 업데이트된 버전을 저장하기 위한 비보호 구역을 포함하는 단일 비소멸성 메모리 요소 ;

    - 내장 시스템의 초기화 프로그램 및/또는 운영 소프트웨어 버전을 저장하기 위한 소멸성 메모리, 이는 새로운 버전의 동시 운영 및 재프로그래밍을 가능하게 한다 ;

    - 내장 시스템의 초기화 프로세스 및 운영을 제어하고, 비소멸성 메모리의 내용을 소멸성 메모리에 복사하고, 상기 운영 소프트웨어 및/또는 상기 초기화 프로그램의 새로운 버전을 다운로드, 검증 및 프로그램하기 위한 제어 회로 ; 및

    - 소프트웨어 및/또는 상기 초기화 프로그램 버전을 다운로드하기 위한 데이터 수신 입력기.

    도 1은 본 발명의 바람직한 실시예에 따른, 단일 비소멸성 메모리를 갖는, 소프트웨어의 업그레이드가 가능한 내장 시스템의 블록도 ;

    도 2는 본 발명의 바람직한 실시예에 따른, 도 1의 내장 시스템의 메모리 배열의 개략도 ;

    도 3은 본 발명의 바람직한 실시예에 따른, 비소멸성 메모리 시스템의 상태 단어의 순서도 ; 및

    도 4는 본 발명의 바람직한 실시예에 따른, 내장 시스템 운영의 순서도.

    본 발명의 상기 및 다른 특징과 장점은 첨부 도면을 참조한 하기 본 발명의 바람직한 실시예의 예시적이고 비제한적인 상세한 설명을 통해 더 잘 이해될 것이다.

    도 1은 본 발명의 바람직한 실시예에 따른, 단일 비소멸성 메모리 요소를 갖는, 소프트웨어의 업그레이드가 가능한 내장 시스템의 블록도이다. 내장 시스템(10)은 컨트롤러(11)에 의해 제어되고, 이 컨트롤러는 플래시 메모리(12)와 램(Random Access Memory : RAM)(13)에 연결되며 플래시 메모리(12)에 저장된 운영 소프트웨어에 따라 시스템 기능을 작동시킨다. 플래시 메모리(12)는 운영 소트프웨어 및/또는 기타 요구되는 지시를 저장하기 위해 필요한 유일한 비소멸성 메모리이다. 램(13)은 초기화 및 다운로드 프로그램의 임시 저장을 위해 사용되는 소멸성 메모리로, 시스템이 초기화될 때마다, 플래시 메모리(12)로부터 램(13)으로 복사되는 가장 최근의 소프트웨어 버전을 이용하여, 다운로드 모드시 컨트롤러(11)가 시스템(10)을 작동시킬 수 있게 한다. 또 하나의 실시예에서, 운영 프로그램의 일부 또는 모두가 다운로드 프로세스 동안 추가 기능을 허락하도록 램(13)에 복사될 수도 있다. 예를 들어, 스마트 전화기(smart telephone)에서, 다이얼링(dialing), 걸려온 전화에 대한 전화기의 신호음 유형 및 기타 기본 기능을 허락하는 전화기 운영 제어 프로그램의 일부가 램(13)에 복사될 수 있어, 다운로드 동안 이 기능이 가능하게 된다. 또한 전체 운영 프로그램을 램(13)에 복사할 수 있어 다운로드 동안 완전 운영을 허락하는데, 이 경우 모든 소프트웨어는 램에서 실행된다. 플래시 메모리의 주 장점은 그 내용이 "시스템 내에서", 즉 분해할 필요없이, 쉽게 변경될 수 있는 비소멸성 고밀도 장치라는 것이다.

    시스템(10)은 통신 링크(14)를 통해 데이터원에 연결되고, 이 통신링크를 통해 새로운 프로그램 버전이 플래시 메모리(12) 및/또는 램(13)에 다운로드될 수 있다. 컨트롤러(11)는 데이터 흐름을 제어한다. 따라서, 새로운 소프트웨어 및 펌웨어 버전을 시스템(10)에 다운로드하고 프로그래밍하는 것은 링크(14)를 통하여 이루어지고, 전형적으로는 프로그래밍 장치(예:컴퓨터)를 링크(14)에 연결함으로써 이루어진다. 그래서 업그레이드가 필드에서 이루어지고, 씨디-롬(CD-ROMs) 또는 인터넷 상에 분산될 수 있다(distributed). 예를 들어, 시스템(10)이 스마트 전화기일 수 있고, 이는 직렬 연결(serial connection)(예:RS-232)을 통해, 데이터 통신 링크(14)의 역할을 하는 부착된 PC 로부터 새로운 소프트웨어 버전을 다운로드함으로써 프로그램될 수 있다. 시스템(10)이 정상 운영되는 동안, 시스템(10)이 작동될 때마다(turned on), 플래시 메모리(12)에 저장되고 램(13)에 복사된 지시에 따라 부트 프로세스가 시작된다. 부트 프로세스 이후, 시스템(10)이 정상 운영 모드로 되고, 컨트롤러(11)가 램(13) 및/또는 플래시 메모리(12)에 저장된 프로그램에 따라서 시스템 기능을 제어한다. 통상적으로, 원(최초의) 소프트웨어 버전은 제조자에 의해 플래시 메모리(12)에 프로그램되며, 시스템(10)의 기능을 향상시키고 또는 사용자에게 새로운 특성을 제공하는 새로운(그리고 개선된) 버전을 필드에서 업데이트함으로써 때때로 업데이트된다. 그러나, 몇가지 이유에서, 때때로 다운로드 프로세스가 중단되거나, 또는 새로운 소프트웨어 버전의 일부가 훼손된다(예를 들어, 통신 링크(14)를 통한 데이터 전송시 일어나는 회복불가능한 에러로 인하여). 다운로드 및 프로그래밍은 메모리에서 이전 소프트웨어 버전의 데이터 삭제를 수반하므로, 플래시 메모리가 훼손된 또는 불완전한 소프트웨어 버전만을 포함하는 상황은 없어야 한다. 따라서, 새로운 부트 프로세스 및 이어지는 다운로드 및 프로그래밍 운영을 가능하게 하도록, 부트 절차를 계속 보호하고 재사용을 위해 가용성을 유지시키는 것이 매우 중요하다. 또 다른 바람직한 실시예에서, 시스템(10)을 현재의 소프트웨어 버전에 따른 기능의 어떤 레벨에서 작동시키고, 동시에 시스템(10)에 새로운 소프트웨어 버전을 프로그래밍하는 메모리 배열(memory arrangement)을 제공하는 것이 바람직하다(즉, 시스템(10)의 운영이 새로운 소프트웨어 버전을 프로그래밍 하는 동안 완전히 중단되지는 않는다). 램(13)은 운영(operationa)을 위해 필요한 현재의 소프트웨어 버전의 부분 또는 전체를 저장하기 위해 사용되고, 플래시 메모리(12)는 프로그래밍된다. 최소한도로, 램(13)은 다운로드 프로그램을 저장하고 운영하는데 사용된다. 덧붙여, 부트 및 다운로드 절차를 업그레이드되도록 하는 것이 바람직하다. 현재의 플래시 메모리 기술은 플래시 메모리 요소가 어떠한 섹터에서 프로그램되는 동안 동시에 액세스 되도록(accessed) 하지 못한다.

    도 2는 본 발명의 바람직한 실시예에 따라, 도 1의 내장 시스템의 메모리 배열을 개략적으로 도시하고 있다. 플래시 메모리(12)의 저장 공간은 세그먼트(segments)로도 알려진 다수의 섹터(최소 세개의 섹터)로 나누어진다. 두 개의 섹터는 부트 프로그램을 저장하는데 사용되고, 나머지 섹터는 운영 소프트웨어의 현재 버전을 저장하기 위해 사용되는데, 이 현재 버전은 다운로드 운영에 의해 업그레이드될 수 있다. 플래시 메모리의 하나의 부트 섹터(20)는 제조자에 의해 프로그램된 대로의 원 부트 프로그램을 포함하고, 하드웨어 보호된다(hardware protected). 하드웨어 보호(hardware protection)는, 예를 들어, 쓰기 기능을 가능하게 하기 위해 필드에서 이용할 수 없는 비교적 높은 전압을 요구함으로써 달성될 수 있다. 그 결과, 시스템(10)은 필드에서 업그레이드될 수 없는 보호된 부트 섹터를 갖는다. 쓰기 방지되지 않는 다른 부트 섹터(21)는 원 부트 프로그램으로 최초로 프로그램되며 새로운 버전으로 업그레이드될 수 있다. 섹터의 끝에 부가된(appended) 플래그(flag)는 플래시 메모리(12)의 접근가능한 섹터 21과 22 각각의 상태 플래그로 사용된다. 도 3을 참조하면, 상태 플래그의 상태 도표이다.플래그는 공장에서 "유효" 상태(valid state)로 프로그램된다. 업데이트 프로세스의 제1단계는 이 플래그를 "삭제 프로세스"로 리세팅(resetting)하는 것을 수반한다. 이렇게 세팅되고 나면, 업데이트 프로세스가 시작될 수 있고, 이는 현재의 프로그램을 삭제하는 것을 수반한다. 삭제 절차가 완료된 후, 플래그는 "삭제된" 상태로 리셋된다. 섹터가 프로그램되고 검증된 후, 플래그는 다시 "유효" 상태로 재저장된다.

    다운로드 프로세스 동안, (새로운 소프트웨어/부트 버전의) 원격 데이터원에 의하여, 링크(14)를 통해 시스템(10)에 전송된 데이터의 각 블록에 순환 중복 코드(CRC : Cyclic Redundancy Code)가 부가된다. 컨트롤러(11)가 동일한 CRC 계산을 수신된 데이터에 적용하고 전송 전에 데이터 블록에 부가되었던 결과와 비교한다. 결과가 일치하면, 데이터 블록이 성공적으로, 즉 데이터 에러 없이 수신되었고 정확한 사본(copy)임을 나타내는 것이다. 결과가 일치하지 않으면, 데이터 블록을 다시 보내라는 요청이 통신 링크(14)를 통해 전송되고, 이후 블록이 원격 데이터원에 의해 다시 보내진다. 이러한 절차는 이 기술분야의 숙련자에게 잘 알려져 있다. 논리 섹터(logical sector)가 제대로 수신되었으면, 유효한 CRC 코드에 의해 나타나듯이, 섹터는 실행중인 업그레이드 프로그램에 의해 프로그램된다. 이후 데이터는 저장된 섹터에서 판독되고 다시 확인되며, 이어 섹터 끝의 상태 플래그가 "유효" 로 셋팅된다.

    본 발명의 바람직한 실시예에 따르면, 플래시 메모리(12)의 (쓰기 방지된 그리고 접근가능한 섹터의) 이러한 이중 부트 섹터 배열은, 다운로드 프로세스가 중단될 때마다, 쓰기 방지된 부트 섹터(20)에 저장된 원 부트 프로그램을 이용하여, 또는 상태 플래그에 의해 나타난 바와 같이, 정확한 사본이 존재하면 접근가능한 부트 섹터(21)의 내용을 이용하여 업데이트된 부트 프로그램을 이용함으로써 재부팅 작동을 가능하게 한다. 플래그가 유효하면, 업데이트된 부트 프로그램은 램(13)의 메모리 세그먼트(23)(부트 세그먼트)에 복사되며, 플래시 메모리(12)의 다운로드 및 프로그래밍 후와 같이 시스템이 다시 시작될 때마다 시스템(10)을 부팅하는데 사용된다. 부트 섹터(21)의 플래그가 유효하지 않았다면, 부트 프로그램의 원래의, 하드웨어 보호된 버전이 메모리 세그먼트(23)에 복사된다. 램(13)은 추가 세그먼트(24)를 포함하고, 필요한 경우, 여기에 다운로드된 데이터 블록이 임시저장을 위해 복사될 수 있다. 시스템(10)은 램(13)에 저장된 (복사된) 부트 프로그램과 플래시 메모리(12)에 저장된 소프트웨어를 이용하여 컨트롤러(11)에 의해 운영 제어된다. 따라서, 시스템이 작동을 시작할 때마다, 두 개의 부트 섹터 중 하나(20 또는 21)가 램(13)의 세그먼트(23)에 복사된다. 그러므로 프로그램이, 어떤 코드 버전이 사용되었는지에 관계없이, 항상 동일한 어드레스 공간으로부터 작동된다.

    도 4는 본 발명의 바람직한 실시예에 따른, 내장 시스템 운영의 순서도이다. 프로그램은 플래시 메모리의 섹터(20)로부터 시작한다. 제1단계(401)에서, 섹터(21)에 저장된 소프트웨어의 유효성(validity)이, 동일 섹터 끝에 저장된 상태 플래그를 체크함으로써 체크된다. 유효하다고 알려지면, 다음 단계(402)에서, 섹터(21)의 내용이 램(13)의 세그먼트(23)에 복사된다. 유효하지 않은 것으로 알려지면, 다음 단계(403)에서, 세그먼트(20)의 내용이 램(13)의 섹터(23)에 복사된다. 다음 단계(404)에서, 컨트롤러(11)의 운영 어드레스가 섹터(23)에(섹터로부터 작동되도록) 전송된다. 섹터(23)에 복사된 프로그램은 최소한 컨트롤러(11)가 다운링크(14)를 작동시키고 플래시 메모리(12)를 업데이트하도록 한다.

    본 발명의 또다른 바람직한 실시예에 따르면, 플래시 메모리(12)의 하나 이상의 섹터(22)가 또한 램(13)에 복사된다. 이 경우, 컨트롤러(11)는 플래시 메모리(12)로부터 보다는 램(13)으로부터 프로그램의 해당 부분을 작동시킨다. 이로 인해 다운로드 동안 추가 기능이 가능하게 되는데, 이는 프로그램이 업데이트되면서 동일한 어드레스로부터 실행될 수 없기 때문이다. 현재 실제로, 업데이트되는 동안, 소프트웨어는 플래시 메모리(12)로부터 결코 실행될 수 없으며, 따라서 램(13)에 복사된 소프트웨어만이 기능할 수 있다.

    램(13)의 부트 섹터(23)와 함께 플래시 메모리(12)의 섹터(22)는 소프트웨어 버전을 생성시키기 위해 사용된다. 원 소프트웨어 버전은 제조자에 의해 플래시 메모리의 섹터(22)에 프로그램된다. 운영시, 부트 프로그램의 최종 버전(최초 운영시 원래의 부트 프로그램)이 유효하다고 알려지면, 보호되지 않는 부트 섹터(21)에서 부트 세그먼트(23)로 복사되고, 최종 소프트웨어 버전(최초 운영시의 원래의 소프트웨어 버전)은 컨트롤러(11)가 램(13)과 플래시 메모리(12)로부터 시스템(10)을 작동시키도록 하기 위해 섹터(22)로부터 사용된다.

    부트 프로그램은 또한 새로운 부트 데이터 블록을 전송하고 보호되지 않는 부트 섹터(21)를 수신된 부트 데이터 블록으로 프로그래밍함으로써 업데이트될 수 있다. 보호된 부트 섹터(20)는 예비(backup)로 원래의 부트 프로그램을 포함한다. 시스템(10)이 초기화되면, 컨트롤러(11)가 부트 섹터(21)에 저장된 최종 부트 프로그램의 유효성을 먼저 체크함으로써 초기화에 사용된 부트 프로그램을 선택한다. 수신된(새로운) 부트 데이터 블록의 상태 코드가 유효하다고 알려지면, 최종 부트 프로그램이 섹터(21)에서 램(13)의 부트 세그먼트(23)로 복사되고, 초기화 프로세스가 램(13)에서 최종(업데이트된) 부트 프로그램 버전에 따라서 계속된다. 섹터(21)의 상태 코드가 수신된(새로운) 부트 데이터 블록이 유효하지 않다고 나타내면, 원래의 부트 프로그램이 섹터(20)에서 램(13)의 부트 세그먼트(23)로 복사되고, 초기화 프로세스가 램(13)에서 원래의 부트 프로그램 버전에 따라서 계속되고, 새로운 다운로드 및 프로그래밍 프로세스가 가능하게 된다. 따라서, 플래시 메모리(12)의 이중 부트 섹터를 이용함으로써, 다운로드 및 프로그래밍 프로세스가 고장 안전(fail-safe) 하다. 본 발명의 바람직한 실시예에 따르면, 섹터(21)의 상태 코드가 수신된(새로운) 부트 데이터 블록이 유효하지 않다고 나타내면, 원래의 부트 프로그램을 섹터(20)에서 램(13)의 부트 섹터(23)로 복사하는 것에 더하여, 섹터(22)에서의 추가 논리 세그먼트가 추가 기능을 가능하게 하기 위해 램(24)으로 복사된다. 각 섹터는 상태 단어가 유효하다고 나타내면 단지 적재된다(loaded). 운영 프로그램은 각각의 논리 세그먼트로부터 독립적인 기능이 가능하도록 설계되어야 하므로, 몇몇 추가적인 유효 세그먼트가 유효하지 않은 다른 세그먼트가 없을 때 작동할 수 있을 것이다.

    본 발명의 바람직한 실시예에 따르면, 위에서 설명한, 원격 소스로부터 업데이트된 데이터 블록을 통신 링크를 통하여 전송함으로써 수행되는 다운로드 및 프로그래밍 운영은 또한, 필드에서 그리고 판상에서, PC와 같은 데이터원을 시스템(10)의 적합한 입력기 또는 데이터 링크 입력기(예 : 직렬 RS-232 포트)에 연결하는 기술자 또는 사용자에 의하여 유사하게 수행될 수 있다.

    상기 실시예 및 설명은 예시의 목적으로만 주어진 것이며 어떠한 방법으로도 본 발명을 제한하는 것은 아니다. 당해 기술분야의 숙련자들은 이해하듯이, 본 발명은 매우 다양한 방법으로 실시될 수 있고, 이는 내장 시스템의 운영을 제어하기 위해 마이크로-컨트롤러 또는 마이크로프로세서를 이용하고, 업그레이드된 소프트웨어 버전을 다운로드하기 위하여 무선 데이터 통신 링크를 사용하는 것과 같이, 전술한 기술 이상의 것을 이용하고, 플래시 메모리 및/또는 램과 다른 소멸성 및 비소멸성 메모리 유형을 사용하여 모놀리틱 회로(monolityic circuitry)상에 내장 시스템을 구현하는 등으로 실시될 수 있으며, 이 모두는 본 발명의 범위를 벗어나지 않는다.

    본 발명에 따른 방법 및 장치에 의하면, 기판상에서 그리고 필드에서, 고장 안전 절차를 이용하여, 새로운 소프트웨어 및 부트 버전을 내장 시스템의 단일 비소멸성 메모리로 다운로드하는 것이 가능하다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈